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的主要内容,如果未能解决你的问题,请参考以下文章

sql语句update语句中嵌套的子查询该怎么写?

SQL基础语法—update语句

通过 RAW plpgsql 中的 UPDATE 语句获取受影响的行

mysql中一个update语句如何去写

ORACLE/SQL - UPDATE 语句问题(需要 OR 一些集合)

在 pyspark 中的简单 .first()、.count() 中出现错误,