gpt4 book ai didi

oracle - ORA-00947全局声明类型时值不足

转载 作者:行者123 更新时间:2023-12-03 19:54:31 31 4
gpt4 key购买 nike

 create table foo(
id number,
status varchar2(10)
);


表已创建。

insert into foo values( 1, 'open' );
insert into foo values( 2, 'close' );
insert into foo values( 3, 'open' );
insert into foo values( 4, 'open' );
insert into foo values( 5, 'close' );

create type foo_obj is object (
id number,
status varchar2(10)
);
/

create type foo_nt
as table of foo_obj;
/

create or replace package test_bulk
is

procedure temp;

end;
/

create or replace package body test_bulk
is

procedure temp
is
v_nt foo_nt;
begin
select id ,status
bulk collect into v_nt
from foo;

end temp;

end test_bulk;


这是一种非常奇怪的情况,当我全局创建一个类型对象和该类型的嵌套表并创建一个嵌套表类型的变量并将其批量收集到该变量中时


ORA-00947:值不足错误


但是,当我声明一个记录类型和该记录类型的嵌套表,然后在包中嵌套表的变量时,则上述批量收集工作不会引发错误

谁能帮我这个忙吗?

最佳答案

您不能只是将值放入对象表中-您需要将值转换为适当类型的对象,然后插入对象。尝试

procedure temp is
v_nt foo_nt;
begin
select FOO_OBJ(id ,status)
bulk collect into v_nt
from foo;
end temp;


未经动物测试-您将是第一!

分享并享受。

关于oracle - ORA-00947全局声明类型时值不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10213489/

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