黄凌新 2017-04-14 08:05 采纳率: 0%
浏览 728
已结题

求帮写一个oracle存储过程

某个字段格式如下:xxxxxx[2016]1号、xxxxxx[2017]10号。
现在我需要对末尾的号数进行处理,不足三位就补0,比如1号改为001,10号改为010
。求教这个过程应该怎么写?

  • 写回答

4条回答 默认 最新

  • zhurongxiong 2017-04-14 09:23
    关注

    纯手打,麻烦分数给我,直接可以用,你自己设置个变量吧,在命令行调用exec tran;
    create or replace procedure tran is
    v_tran varchar2(100):='xxxxxx[2016]1号';
    v_num number:='0';
    begin
    select length(v_tran) into v_num from dual;
    if v_num=16 then
    dbms_output.put_line(v_tran);
    elsif v_num=15 then
    dbms_output.put_line(substr(v_tran,1,12)||'0'||substr(v_tran,13,2));
    elsif v_num=14 then
    dbms_output.put_line(substr(v_tran,1,12)||'00'||substr(v_tran,13,2));
    else
    dbms_output.put_line('请输入合法的字符串,如xxxxxx[2016]1号');
    end if;
    end;

    评论

报告相同问题?