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.first
和 my_tab.last
时,我遇到了同样的问题。
【问题讨论】:
啊,好点子。将其添加到问题中。 【参考方案1】:我真傻……collection methods cannot be called from SQL statements.
【讨论】:
以上是关于UPDATE 语句中的集合 COUNT、FIRST 和 LAST的主要内容,如果未能解决你的问题,请参考以下文章
通过 RAW plpgsql 中的 UPDATE 语句获取受影响的行