广州网页模板建站,开发公司职责,长春网站制作机构,资源网站如何做背景
在信创适配中#xff0c;从ORACLE迁移过来的程序使用了substr函数。
LightDB 23.4版本对该函数进行了增强。支持位置参数和长度参数使用number类型。
示例
使用substr(text, numeric, numeric)函数
declareline varchar(300) : 312456789009876543001000.00;acct va…背景
在信创适配中从ORACLE迁移过来的程序使用了substr函数。
LightDB 23.4版本对该函数进行了增强。支持位置参数和长度参数使用number类型。
示例
使用substr(text, numeric, numeric)函数
declareline varchar(300) : 312456789009876543001000.00;acct varchar(100);amt varchar(100);pos number(10);len number(10);
beginpos 1;len 20;acct : substr(line, pos, len);pos 21;len 7;amt : substr(line, pos, len);dbms_output.put_line(acct: || acct);dbms_output.put_line(amt: || amt);
end;
/acct:31245678900987654300
amt:1000.00
DOcreate table tt_substr(pos number(10, 2), len number(10, 2));
insert into tt_substr values(0.0, 0.0);
insert into tt_substr values(-0.0, -0.0);
insert into tt_substr values(0.0, 2);
insert into tt_substr values(0.11, 2);
insert into tt_substr values(0.51, 2);
insert into tt_substr values(1.0, 2);
insert into tt_substr values(1.11, 2);
insert into tt_substr values(1.51, 2);
insert into tt_substr values(-1.0, 2);
insert into tt_substr values(-1.11, 2);
insert into tt_substr values(-1.51, 2);
insert into tt_substr values(null, null);
insert into tt_substr values(1.0, null);
insert into tt_substr values(null, 1.0);
insert into tt_substr values(1.0, 1.0);
insert into tt_substr values(1.0, 1.11);
insert into tt_substr values(1.0, 1.51);
insert into tt_substr values(1.0, -1.0);
insert into tt_substr values(1.0, -1.11);
insert into tt_substr values(1.0, -1.51);lightdbtest_oracle# select pos, len, substr(abcedf, pos, len) from tt_substr order by pos ASC, len asc;pos | len | substr
-----------------------1.51 | 2.00 | f-1.11 | 2.00 | f-1.00 | 2.00 | f0.00 | 0.00 | null0.00 | 0.00 | null0.00 | 2.00 | ab0.11 | 2.00 | ab0.51 | 2.00 | ab1.00 | -1.51 | null1.00 | -1.11 | null1.00 | -1.00 | null1.00 | 1.00 | a1.00 | 1.11 | a1.00 | 1.51 | a1.00 | 2.00 | ab1.00 | null | null1.11 | 2.00 | ab1.51 | 2.00 | abnull | 1.00 | nullnull | null | null
(20 rows)如上所示当位置信息和长度信息为浮点数时小数部分是直接截掉后当做一个整数使用。同时当位置信息是0或者1时效果是等价的。