create or replace function get_projectcode(p_id number) return varchar2
as
--流程控制用来生成调单的流水号,形如20060112-0001
p_str varchar2(2000);
p_out varchar2(2000);
begin
select to_char(A_STARTDATE,'yyyy')||to_char(A_STARTDATE,'Q') into p_str from project where projectid = p_id;
begin
select to_char(max(to_number(projectcode)+1)) into p_out from project where instr(projectcode,p_str) = 1;
exception
when OTHERS then
p_out := null;
end;
if p_out is null then
p_out := p_str ||'0001';
end if;
return p_out;
exception
when OTHERS then
return null;
end get_projectcode;
是生成调单的流水号,形如20060112"
我现在想形成20060112-0001; 后面的####的转换方式我想这样:我在库里面有个季节 workday 这个字段,当先中第一季度时候形成形如20060112-0001,第二季度时候形成形如20060112-0002 依次类推.我不讳写这程序.求大家帮我该下上面的程序 !!! 求你们了 ,我真的急用.
应该加什么啊? 怎样加?
上面的只是与A_STARTDATE这个字段有联系 ,我现在是想加一个联系 即workday 季度这字段.在原来的基础上加 ,也就是让那个流水号加长.
比如原来的是2006003 现在要他变为2006003008或者2006003A
as
--流程控制用来生成调单的流水号,形如20060112-0001
p_str varchar2(2000);
p_out varchar2(2000);
begin
select to_char(A_STARTDATE,'yyyy')||to_char(A_STARTDATE,'Q') into p_str from project where projectid = p_id;
begin
select to_char(max(to_number(projectcode)+1)) into p_out from project where instr(projectcode,p_str) = 1;
exception
when OTHERS then
p_out := null;
end;
if p_out is null then
p_out := p_str ||'0001';
end if;
return p_out;
exception
when OTHERS then
return null;
end get_projectcode;
是生成调单的流水号,形如20060112"
我现在想形成20060112-0001; 后面的####的转换方式我想这样:我在库里面有个季节 workday 这个字段,当先中第一季度时候形成形如20060112-0001,第二季度时候形成形如20060112-0002 依次类推.我不讳写这程序.求大家帮我该下上面的程序 !!! 求你们了 ,我真的急用.
应该加什么啊? 怎样加?
上面的只是与A_STARTDATE这个字段有联系 ,我现在是想加一个联系 即workday 季度这字段.在原来的基础上加 ,也就是让那个流水号加长.
比如原来的是2006003 现在要他变为2006003008或者2006003A
比如原来的是2006003 现在要他变为2006003008或者2006003A" 中,"联系 即workday 季度这字段"是什么意思?季度的值到后面怎么变成008或A了呢?应该一年只有四个季度的 ... 能否说明一下?
你这个函数不难,你说清楚,大家很快就能解决。