我想通过使用集合来逐个删除字符串的最后一位数字,但是当我删除最后一位数字时,它也会从开头删除零,请检查代码和结果并帮助我
声明
type t_list 是 mk_suk.CALLED_NBR%type 的表;
v_array t_list;
idx 编号;
ID 号;
开始
select substr(CALLED_NBR,1,(LENGTH(CALLED_NBR))) 从 mk_suk 批量收集到 v_array 中;
for i in v_array.first..v_array.last 循环
dbms_output.put_line(v_array(i));
ids:=v_array(i);
循环
从 mk_suk 选择 substr(ids,1,(LENGTH(ids)-1)) 到 idx 中,其中 CALLED_NBR=v_array(i);
ids:=idx;
dbms_output.put_line(idx);
当长度(idx)时退出<2;
结束循环;
结束循环;
结束;
--------------------------------查询结果------------------------ ----------------------------------
09589583145
958958314
95895831
9589583
958958
95895
9589
958
95
9
oracle 不会“从开头删除零”,而是将其转换为数字。数字 0001 与 1 相同,变量
ids
和 idx
都是数字。
koen 19c>SELECT LENGTH(0001) as anumber, LENGTH('0001') as astring from dual;
ANUMBER ASTRING
__________ __________
1 4
koen 19c>