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

Posted jwangpip

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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之建表添加数据报错解决的主要内容,如果未能解决你的问题,请参考以下文章

Mysql数据库的基本操作之建表操作

顺序表应用2:多余元素删除之建表算法

顺序表应用2:多余元素删除之建表算法

3325=顺序表应用2:多余元素删除之建表算法

Mysql高级调优篇补充——⭐️MySQL高级之建表SQL⭐️

Hibernate 自动更新表出错 建表或添加列,提示标识符无效