码迷,mamicode.com
首页 > 其他好文 > 详细

proc之建表添加数据报错解决

时间:2018-05-27 00:26:24      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:creat   roc   begin   for   tno   value   iat   ble   replace   

需求是:我想要创建一个存储过程,在这个存储过程里要完成两件事情,一要创建一个表,二要在这个表里添加数据;

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之建表添加数据报错解决

标签:creat   roc   begin   for   tno   value   iat   ble   replace   

原文地址:https://www.cnblogs.com/jwangpip/p/9094721.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!