过程中插入语句中的错误

时间:2014-01-30 13:10:12

标签: sql

create or replace procedure add1(id1 integer, id integer)
as
begin 
   execute immediate 'create table section2(id integer)';
   execute immediate 'insert into section2 values(id1)';
end;

显示器

  

[ERR-312BA:这里不允许栏目:
  0001:插入Section2值(ID)                                    ^ ^

我想直接插入值而不是通过变量

1 个答案:

答案 0 :(得分:1)

这是因为values期望正在执行的语句的文字常量和参数。虽然id1是参数,但它属于存储过程,而不属于INSERT语句。

请尝试使用此声明:

execute immediate 'INSERT INTO section2(id) VALUES (:1)' USING id1;

现在id1成为参数:1的值,因此语句应该正确运行。