我想将地址输入参数字段分成两行;在一行中,只有160个字符(最大值),并且它将从最接近第160个字符的任何空格中分割出来。请帮忙!
例如,如果我有一个地址变量pi_billing_adress
pi_billing_adress := 'MS-9/804, ABC Street , Sector - 56, near NFC market , Malviya Nagar , New Delhi India';
我必须使用下面的代码从160个字符的两行除以此地址。
SELECT position(' ' in reverse(SUBSTRING(pi_billing_adress,1, 160))) INTO v_space_postion;
v_billing_address_line1 := SUBSTRING(pi_billing_adress,1, (160-v_space_postion));
v_billing_address_line2 := SUBSTRING(pi_shipping_address, (v_address_lenghth-v_space_postion)+1,LENGTH(pi_shipping_address));
pi_billing_address := concat(v_billing_address_line1, chr(10), v_billing_address_line2 );
这将在字符串中的第162个位置之前引入换行而不是第一个空格:
SELECT regexp_replace(pi_billing_adress, E'^(.{1,160}) (.*)$', E'\\1\n\\2');
我不确定这是否是你所需要的,但无论如何它都是你的起点。