create or replace PROCEDURE
"SP_GETNEXTID" ( p_TABLENAME IN WCMID.TABLENAME%TYPE, p_CACHESIZE IN WCMID.CACHESIZE%TYPE, o_NEXTID OUT WCMID.NEXTID%TYPE )AS begin select NEXTID into o_NEXTID from WCMID where TABLENAME=p_TABLENAME; update WCMID set NEXTID=NEXTID+p_CACHESIZE where TABLENAME=p_TABLENAME;
end;这个存储过程好像是用于表的ID的,
是什么意思,怎么用。
比如我想插入语句中用,该怎么用,谢谢
"SP_GETNEXTID" ( p_TABLENAME IN WCMID.TABLENAME%TYPE, p_CACHESIZE IN WCMID.CACHESIZE%TYPE, o_NEXTID OUT WCMID.NEXTID%TYPE )AS begin select NEXTID into o_NEXTID from WCMID where TABLENAME=p_TABLENAME; update WCMID set NEXTID=NEXTID+p_CACHESIZE where TABLENAME=p_TABLENAME;
end;这个存储过程好像是用于表的ID的,
是什么意思,怎么用。
比如我想插入语句中用,该怎么用,谢谢
create or replace PROCEDURE
SP_GETNEXTID
(
p_TABLENAME IN WCMID.TABLENAME%TYPE,
p_CACHESIZE IN WCMID.CACHESIZE%TYPE,
o_NEXTID OUT WCMID.NEXTID%TYPE
)
AS
begin
select NEXTID into o_NEXTID from WCMID where TABLENAME=p_TABLENAME;
update WCMID set NEXTID=NEXTID+p_CACHESIZE where TABLENAME=p_TABLENAME;
commit; --加一下提交的事务
end; --调用
begin
exec SP_GETNEXTID(参数1,参数2)
end;
怀疑是从其他数据库转过来的。
建议使用sequence了。
create or replace PROCEDURE
"SP_GETNEXTID" --存储过程名称
( p_TABLENAME IN WCMID.TABLENAME%TYPE, p_CACHESIZE IN WCMID.CACHESIZE%TYPE, o_NEXTID OUT WCMID.NEXTID%TYPE ) --存储过程参数
AS
begin
--存储过程执行语句
select NEXTID into o_NEXTID from WCMID where TABLENAME=p_TABLENAME;
update WCMID set NEXTID=NEXTID+p_CACHESIZE
where TABLENAME=p_TABLENAME;
end; 想插入语句就把插入语句的insert into table values()置入beging-end中调试执行即可;