gpt4 book ai didi

sql - ORA-00947 "not enough values"当 UPDATE 返回 BULK COLLECT INTO 用户创建类型表时

转载 作者:行者123 更新时间:2023-12-04 09:24:29 28 4
gpt4 key购买 nike

尝试批量收集到表类型时出现以下错误:
ORA-00947“值不够”
我需要创建一个数据库级类型来使用我的应用程序访问结果集(打开游标)。
文件:FOO_STATUS.sql

CREATE OR REPLACE TYPE "FOO_STATUS" AS OBJECT
(
a NUMBER,
b NUMBER,
c NUMBER
);
/
文件:FOO_STATUS_TABLE.sql
CREATE OR REPLACE TYPE FOO_STATUS_TABLE IS TABLE OF FOO_STATUS;
/
包裹:
PROCEDURE foo
(
...
)
IS
l_foo FOO_STATUS_TABLE := FOO_STATUS_TABLE();
BEGIN
UPDATE foo_table
SET ...
WHERE ...
RETURNING foo_table_a, foo_table_b, c BULK COLLECT INTO l_foo; -- ERROR: ORA-00947

OPEN p_results FOR
SELECT
foo_results.a AS a,
foo_results.b AS b,
foo_results.c AS c,
other.d AS d
FROM
TABLE( l_foo ) foo_results INNER JOIN other_table other ON foo_results.obj = other.obj
END;

最佳答案

由于 l_foo 是 的表对象 您需要将对象收集到此集合中,而不仅仅是像这样的值

returning foo_status(a, b, c) bulk collect into l_foo
fiddle example

关于sql - ORA-00947 "not enough values"当 UPDATE 返回 BULK COLLECT INTO 用户创建类型表时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63041830/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com