2013-08-23 1 views
0

다른 형식 (Oracle) 내의 테이블 형식에서 null 값으로 채우고 싶습니다. 코드를 작성하기 만하면 문제를 설명하기가 더 쉬울 것입니다. 다음에테이블 형식 내에서 테이블 형식 null 값으로 채우는 방법

DECLARE 
    TYPE type_1 is record (col_1 varchar2(255), 
         col_2 varchar2(30), 
         col_3 varchar2(3) 
         ); 
    TYPE table_1_tbl is table of type_1; 

    TYPE table_2 is record (col_1 varchar2(255), 
          col_2 varchar2(30), 
          t1 table_1_tbl 
         ); 
    TYPE table_2_tbl is table of table_2; 

    TYPE type_3 is record (col_1 varchar2(30), 
         col_2 VARCHAR2(19), 
         t2 table_2_tbl 
         ); 
    TYPE table_3_tbl is table of type_3; 

    Obj table_3_tbl; 

BEGIN 
    select 
      'value_1', 
      'value_2', 
      null 
     BULK COLLECT INTO 
      Obj 
     FROM dual; 
END; 
/

이 코드의 결과는 : 당신이 볼 수 있듯이

Error report: 
ORA-06550: line 32, column 16: 
PLS-00382: expression is of wrong type 
06550. 00000 - "line %s, column %s:\n%s" 
*Cause: Usually a PL/SQL compilation error. 
*Action: 

, 오라클은 내 변수 "OBJ"의 "T3"열을 채우기 위해 NULL 값을 사용하지 않습니다. 너 내가 어떻게 이럴 수 있니?

참고 : 스키마에서 이러한 형식을 컴파일 할 수 없습니다.

답변

0

는 다음 시도해보십시오 답변

... 
BEGIN 
    obj := new table_3_tbl(); 
    obj.extend(1); 
    obj(1).col_1 := 'value_1'; 
    obj(1).col_2 := 'value_2'; 
    obj(1).t2 := NULL; 
END; 
/
+0

감사합니다,하지만 난 쿼리에서 값을 얻을 것이다, 난 그냥 예를 들어 듀얼 테이블을 사용했다. 어쨌든 고마워! – user2711220