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) ^ ^
我想直接插入值而不是通过变量
答案 0 :(得分:1)
这是因为values
期望正在执行的语句的文字常量和参数。虽然id1
是参数,但它属于存储过程,而不属于INSERT
语句。
请尝试使用此声明:
execute immediate 'INSERT INTO section2(id) VALUES (:1)' USING id1;
现在id1
成为参数:1
的值,因此语句应该正确运行。