在pl / sql中的相同过程中创建表和插入

时间:2014-01-28 16:49:14

标签: oracle plsql

我正在尝试创建一个表,然后在pl / sql中的相同过程中插入一些值。我试图运行以下查询但没有成功:

create or replace Procedure insertval8(id_no in number,e_name in char)
is
 begin
 execute immediate 'create table edu2(id number(20), name char(12))';
 insert into edu2 values(&id_no,&e_name);
 end;

显示器

LINE/COL ERROR
-------- -----------------------------------------------------------------
5/1      PL/SQL: SQL Statement ignored
5/13     PL/SQL: ORA-00942: table or view does not exists

在删除插入代码之前,错误仍然存​​在。

1 个答案:

答案 0 :(得分:3)

无法编译该过程,因为该表在编译时不存在。

也可以在执行立即数中包装插入,或者使用全局临时表(通常是临时数据的首选解决方案)。

create or replace procedure insertval8 (id   in number,
                                        name in char  )
is
begin

  execute immediate 'create table edu2(id number(20), name char(12))';
  execute immediate 'insert into  edu2(id, name) values (:1, :2)'
              using id, name;
end;