UPDATE 语句中的集合 COUNT、FIRST 和 LAST

Posted

技术标签:

【中文标题】UPDATE 语句中的集合 COUNT、FIRST 和 LAST【英文标题】:collection COUNT, FIRST and LAST in UPDATE statement 【发布时间】:2013-03-14 23:45:51 【问题描述】:

我有一张%ROWTYPE的表格:

TYPE t_my_tab IS TABLE OF my_config%ROWTYPE INDEX BY BINARY_INTEGER;
my_tab t_my_tab;

我使用一些动态 SQL 加载它:

EXECUTE IMMEDIATE v_sql BULK COLLECT INTO my_tab;

我收到一个错误:

UPDATE ... SET x = mytab.count ...;

PL/SQL: ORA-00904: "MY_TAB"."COUNT": invalid identifier

但是当我将值分配给另一个变量时,它工作正常:

v_count NUMBER;
v_count := mytab_tab.count;
UPDATE ... SET x = v_count ...;

有没有办法避免这种重新分配?当我在 FOR 循环中使用 my_tab.firstmy_tab.last 时,我遇到了同样的问题。

【问题讨论】:

啊,好点子。将其添加到问题中。 【参考方案1】:

我真傻……collection methods cannot be called from SQL statements.

【讨论】:

以上是关于UPDATE 语句中的集合 COUNT、FIRST 和 LAST的主要内容,如果未能解决你的问题,请参考以下文章