Plsql 具有into关键字的动态SQL Select语句

Plsql 具有into关键字的动态SQL Select语句,plsql,oracle11g,Plsql,Oracle11g,我有一个存储过程,它创建表并动态插入到表中,这里一切正常。下面代码的问题 execute immediate 'SELECT NAME INTO variable1 FROM table1 WHERE ID = 2'; 错误是: 缺少关键字。您不希望中的成为动态SQL语句的一部分。它需要是executeimmediate execute immediate 'SELECT NAME FROM table1 WHERE ID = 2' into variable1; EXECUTE

我有一个存储过程,它创建表并动态插入到表中,这里一切正常。下面代码的问题

execute immediate
'SELECT NAME 
INTO variable1
FROM table1 
WHERE ID = 2';
错误是:
缺少关键字。

您不希望
中的
成为动态SQL语句的一部分。它需要是
executeimmediate

execute immediate
  'SELECT NAME FROM table1 WHERE ID = 2'
  into variable1;
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;