proc之建表添加數據報錯解決
需求是:我想要創建一個存儲過程,在這個存儲過程裏要完成兩件事情,一要創建一個表,二要在這個表裏添加數據;
create or replace procedure ctab as
i number;
begin
execute immediate ‘create table dd as
select * from dept‘;
execute immediate ‘alter table dd add constraint pk_dd primary key(deptno)‘;
for i in 901 .. 10000 loop
insert into dd values (i, ‘TEST‘, ‘BEIJING‘);
end loop;
commit;
end;
編譯報錯,提示表DD不存在。
編譯器認為這個表DD是沒有創建,所以報錯。下面是修改過的存儲過程。
create or replace procedure ctab as
i number;
begin
select count(*) into i from user_tables where table_name = ‘DD‘;
if i = 0 then
execute immediate ‘create table dd as
select * from dept‘;
execute immediate ‘alter table dd add constraint pk_dd primary key(deptno)‘;
for i in 901 .. 10000 loop
insert into dd values (i, ‘TEST‘, ‘BEIJING‘);
end loop;
commit;
end if;
end;
問題解決。
proc之建表添加數據報錯解決