oracle 字符串补齐零,oracle plsql 存储过程 数字转字符串位数不够补零

declare

i number(16);

x number(16);

cur_date varchar(16);

pre_date varchar(16);

sql_str varchar(512);

begin

for x in 7..9 loop

pre_date:='201502'||to_char(x,'fm00')||'000000';

for i in 0 .. 23 loop

cur_date := '201502'||to_char(x,'fm00')||rpad(lpad(to_char(i), 2,

'0'),6,'0') ;

sql_str:='insert into xl_area_cycle_201502' ||to_char(x,'fm00') ||

' select '''||cur_date||''',MSISDN,IMSI,IMEI,LAC_CELL from

xl_area_cycle_201502' ||to_char(x,'fm00')||'  a

'||

'where a.info_time='''||pre_date||''' and not

exists (select 1 from xl_area_cycle_201502'||to_char(x,'fm00') ||'

b where a.imsi=b.imsi and

b.info_time='''||

cur_date||''') and exists (select 1 from

xl_area_cycle_201502'||to_char(x,'fm00')||'  c

where a.imsi=c.imsi and

c.info_time>'''||cur_date||''')';

pre_date:=cur_date;

execute immediate sql_str;

commit;

end loop;

end loop;

end;

/

​to_char(x,'fm00')是为了将x转为字符串,00是为了不够两位数的时候前面补零,fm是为了去除前面的空格。to_char(x,'fm00')也可以用trim(to_char(x,'00'))代替。

xl_area_cycle_201502'||to_char(x,'fm00')||'​

是组合表名

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值