各位高手看一下这个问题用存储过程可以解决吗?
总共3个存过程
GET_NM 取最大内码的存储过程(MAX_NM)
SQL: SELECT MAX(TO_NUMBER(NM) FROM DJ_BT 取出最大内码是'112'ADD_DJ_BT 增加表头的存储过程(带参数,需要调用GET_NM 中定义的MAX_NM)
ADD_DJ_BT(单据编号,单据日期,单位编号,备注).....
SQL:INSERT INTO DJ_BT(内码,单据编号,单据日期,单位编号,备注) values ('112',@单据编号,@单据日期,@单位编号,@备注)
ADD_DJ_BT2 增加表体的存储过程(带参数,需要调用GET_NM 中定义的MAX_NM)
ADD_DJ_BT2(物料编号,物料名称,数量,单价,金额)
SQL:INSERT INTO DJ_BT2(物料编号,物料名称,数量,单价,金额) values ('112',@物料编号,@物料名称,@数量,@单价,@金额)
请问在ADD_DJ_BT和ADD_DJ_BT2中可以调用GET_NM中的返回结果吗?Create proc add_dj_bt
@内码 char(10),@单据编号 varchar(20),@单据日期 CHAR(8) ,@单位编号 char(8),@备注 char(40)
as
begin
内码:='112';--------------如何使内码等于固定的从GET_NM中取出的MAX_NM值.
insert into dj_bt(内码,单据编号,单据日期,单位编号,备注) Values(@内码,@物料编号,@物料名称,@数量,@单价,@金额)
end add_dj_bt;刚开始学习ORACLE,还望各位高手详细指点.非常谢谢!
总共3个存过程
GET_NM 取最大内码的存储过程(MAX_NM)
SQL: SELECT MAX(TO_NUMBER(NM) FROM DJ_BT 取出最大内码是'112'ADD_DJ_BT 增加表头的存储过程(带参数,需要调用GET_NM 中定义的MAX_NM)
ADD_DJ_BT(单据编号,单据日期,单位编号,备注).....
SQL:INSERT INTO DJ_BT(内码,单据编号,单据日期,单位编号,备注) values ('112',@单据编号,@单据日期,@单位编号,@备注)
ADD_DJ_BT2 增加表体的存储过程(带参数,需要调用GET_NM 中定义的MAX_NM)
ADD_DJ_BT2(物料编号,物料名称,数量,单价,金额)
SQL:INSERT INTO DJ_BT2(物料编号,物料名称,数量,单价,金额) values ('112',@物料编号,@物料名称,@数量,@单价,@金额)
请问在ADD_DJ_BT和ADD_DJ_BT2中可以调用GET_NM中的返回结果吗?Create proc add_dj_bt
@内码 char(10),@单据编号 varchar(20),@单据日期 CHAR(8) ,@单位编号 char(8),@备注 char(40)
as
begin
内码:='112';--------------如何使内码等于固定的从GET_NM中取出的MAX_NM值.
insert into dj_bt(内码,单据编号,单据日期,单位编号,备注) Values(@内码,@物料编号,@物料名称,@数量,@单价,@金额)
end add_dj_bt;刚开始学习ORACLE,还望各位高手详细指点.非常谢谢!
nm varchar2(10);
begin
nm := GET_NM;
或者直接写 sql
select MAX(TO_NUMBER(NM)) into nm FROM DJ_BT; insert into dj_bt(内码,单据编号,单据日期,单位编号,备注)Values(nm,djbh,djrq,dwbh,bz); end;
我在ADD_DJ_BT2存储过程中调用GETNM也是112,如果我在执行一遍SQL的话就变成113了.
nm varchar2(10);
begin
nm := GET_NM;
或者直接写 sql
select MAX(TO_NUMBER(NM)) into nm FROM DJ_BT; add_dj_bt(nm,,,,,);
add_dj_bt2(nm,,,,,);
end;
这样你只要执行 add_dj一个过程就可以了 end;