PROCEDURE 编号规则
(
企业编号 IN NUMBER
, 表名 IN VARCHAR2
, 编号 OUT NUMBER
) AS
BEGIN
declare
n_key number;
v_cnt number;
begin transaction
set n_key:=企业编号*1000+1;
begin
select count(1) into v_cnt from dual
where exists (select 表名 from 编号表 where 表名=表名);
if v_cnt = 0 then
insert into 编号表 values(表名,n_key);
else
select n_key=编号 from 编号表 with (nolock) where 表名=表名;
set n_key:=n_key+1;
--update the key value by table name
update 编号表 set 编号=n_key where 表名=表名;
end if;
--set ouput value
set 编号=n_key;
--commit tran
commit transaction;
if(@@error>0)
rollback transaction;
END 编号规则;
CREATE TABLE "SCOTT"."编号表"
(
"企业编号" NUMBER,
"表名" VARCHAR2(20 BYTE),
"编号" NUMBER
)
这是我的表,帮我把存储过程改成Oracle的吧,分都给你啦,谢谢啦
不是给你改好了吗?
大致就是这样的。