我有一个存储过程,它可以动态创建表并插入到该表中,这里一切正常。下面代码的问题
execute immediate
'SELECT NAME
INTO variable1
FROM table1
WHERE ID = 2';
错误是:缺少关键字。
execute immediate
'SELECT NAME FROM table1 WHERE ID = 2'
into variable1;
您不希望INTO
成为动态 SQL 语句的一部分。它必须是其中的一部分EXECUTE IMMEDIATE
EXECUTE IMMEDIATE
'SELECT name FROM table1 WHERE id = 2'
INTO variable1;
您几乎肯定希望在动态 SQL 语句中使用绑定变量来减少不断硬解析语句的开销。数字 2 几乎肯定来自其他地方,不应该是硬编码的。
EXECUTE IMMEDIATE
'SELECT name FROM table1 WHERE id = :val'
INTO variable1
USING some_variable_with_a_value_of_2;