在PL SQL过程中使用'execute immediate'的问题

时间:2011-06-07 11:36:49

标签: sql oracle plsql

我在PL SQL过程中使用以下代码:

execute immediate 'select count(distinct item_type) into counter_variable
from items where ' || field_name || ' is not null'

在这里,

counter_variable在程序的声明部分声明 field_name是PL SQL过程的IN参数,传递的值将是'items'表中的列名

我得到的错误是“无效的SQL语句”,我无法弄清楚原因。有什么想法吗?

由于

1 个答案:

答案 0 :(得分:10)

into子句是PL / SQL,在SQL语句中无效。 试试这个:

execute immediate 'select count(distinct item_type) 
from items where ' || field_name || ' is not null' into counter_variable