반응형
ORA-00947 유형을 전역으로 선언하는 동안 값이 충분하지 않음
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;
동물 실험 안 함 - 당신이 첫 번째가 될 것입니다!
공유하고 즐기세요.
언급URL : https://stackoverflow.com/questions/10213489/ora-00947-not-enough-values-while-declaring-type-globally
반응형
'programing' 카테고리의 다른 글
트리 계층 구조를 가져오기 위한 CTE 재귀 (0) | 2023.07.01 |
---|---|
Spring Bean을 다시 초기화하는 방법은 무엇입니까? (0) | 2023.07.01 |
DBNull에서 다른 유형으로 개체를 캐스트할 수 없습니다. (0) | 2023.07.01 |
LIKE가 없는 Oracle 문자열에서 하위 문자열 확인 (0) | 2023.07.01 |
Mongoose FindOneAndUpdate 및 실행 Validator가 작동하지 않습니다. (0) | 2023.07.01 |