具有 into 关键字的动态 SQL Select 语句
Posted
技术标签:
【中文标题】具有 into 关键字的动态 SQL Select 语句【英文标题】:Dynamic SQL Select statement having into keyword 【发布时间】:2013-03-28 06:17:34 【问题描述】:我有一个存储过程,它可以动态创建表并插入到该表中,这里一切正常。下面代码的问题
execute immediate
'SELECT NAME
INTO variable1
FROM table1
WHERE ID = 2';
错误是: 缺少关键字。
【问题讨论】:
【参考方案1】:execute immediate
'SELECT NAME FROM table1 WHERE ID = 2'
into variable1;
【讨论】:
【参考方案2】:您不希望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;
【讨论】:
以上是关于具有 into 关键字的动态 SQL Select 语句的主要内容,如果未能解决你的问题,请参考以下文章
PL/SQL SELECT INTO 错误 (ORA-00905)