我是新手,请各位大侠帮忙看一下以下的存储过程:
create or replace procedure IsHaveSequence(SequenceName in varchar2)
as
SequencesCount integer := 0;
SqlStr varchar2(200) := '';
begin
select count(*) into SequencesCount from All_Sequences where Sequence_name=SequenceName;
if SequencesCount=0 then
SqlStr := 'CREATE SEQUENCE '||SequenceName||' INCREMENT BY 1 START WITH 0 NOMAXVALUE NOCYCLE CACHE 10;';
execute immediate SqlStr;
end if;
end IsHaveSequence;
调用如下:
call IsHaveSequence('SYSTEM_ROLEEQUENCE');
调用的过程中出错,请帮忙查找一下,谢谢!
create or replace procedure IsHaveSequence(SequenceName in varchar2)
as
SequencesCount integer := 0;
SqlStr varchar2(200) := '';
begin
select count(*) into SequencesCount from All_Sequences where Sequence_name=SequenceName;
if SequencesCount=0 then
SqlStr := 'CREATE SEQUENCE '||SequenceName||' INCREMENT BY 1 START WITH 0 NOMAXVALUE NOCYCLE CACHE 10;';
execute immediate SqlStr;
end if;
end IsHaveSequence;
调用如下:
call IsHaveSequence('SYSTEM_ROLEEQUENCE');
调用的过程中出错,请帮忙查找一下,谢谢!
oracle里面执行是 exec IsHaveSequence('SYSTEM_ROLEEQUENCE');或者
begin
IsHaveSequence('SYSTEM_ROLEEQUENCE');
end;
/
create or replace procedure IsHaveSequence(SequenceName in varchar2)
as
SequencesCount integer := 0;
SqlStr varchar2(200) := '';
begin
select count(*) into SequencesCount from All_Sequences where Sequence_name=SequenceName;
if SequencesCount=0 then
SqlStr := 'CREATE SEQUENCE '||SequenceName||' INCREMENT BY 1 START WITH 0 NOMAXVALUE minvalue 0 NOCYCLE CACHE 10';
execute immediate SqlStr;
end if;
end IsHaveSequence;
如果使用exec IsHaveSequence('SYSTEM_ROLEEQUENCE');调用的话,会提示无效语句。
grant create sequence to user;