0

TABLE是否可以在动态 SQL中使用函数?

当我使用带有记录表作为输入的表函数时,我收到无效标识符错误EXECUTE IMMEDIATE

我无法让以下 SQL 工作。

EXECUTE IMMEDIATE 'SELECT COUNT(1) from TABLE(' || v_tab_type || ') WHERE ' || v_where_condn INTO v_cnt;

EXECUTE IMMEDIATE 'SELECT COUNT(1) from ' || TABLE(v_tab_type) || ') WHERE ' || v_where_condn INTO v_cnt;

v_tab_type 是通过 Oracle AQ 消息填充的集合。

4

1 回答 1

0

你应该能够做类似的事情

EXECUTE IMMEDIATE 
  'SELECT COUNT(*) ' ||
  '  FROM TABLE( :1 ) ' ||
  ' WHERE ' || some_predicate
  INTO v_cnt
 USING v_tab_type;

希望无论您对谓词做什么,也可以适当地使用绑定变量,特别是如果要经常调用它。

于 2014-04-09T04:59:32.543 回答