2012-01-24 3 views
1

다음 ID 개체 형식을 테이블 형식의 배열에 저장하는 코드입니다.형식 테이블에 개체 값 저장

객체 생성 :

Create or replace type t_loc as Object 
    (
     name varchar2(255 byte), 
     idt char(2) 
    ); 

PLSQL 블록

set serveroutput on; 
    declare 
    TYPE test1 IS TABLE OF VARCHAR2(100) INDEX BY t_loc; 
    test2 test1; 
    begin 
    test2('abad') := t_loc('ahmedabad','CT'); 
    test2('bang') := t_loc('bangalure','S'); 
    test2('surat') :=t_loc('Surat','C'); 

    dbms_output.put_line(test2('surat')); 

    end; 

나는 위 코드를 컴파일 할 수 없습니다입니다. oracle에서는 가능하지 않습니까? 또는 무엇인가 잘못 되었습니까?

답변

1

다음 코드는 다음과 같습니다.

set serveroutput on; 
     declare 
     TYPE test1 IS TABLE OF t_loc INDEX BY varchar2(100); 
     test2 test1; 
     begin 
     test2('abad') := t_loc('ahmedabad','CT'); 
     test2('bang') := t_loc('bangalure','S'); 
     test2('surat') :=t_loc('Surat','C'); 

     dbms_output.put_line(test2('surat').name); 

     end; 
2

맞춤형으로 색인 된 문자열 표를 원하십니까? 또는 문자열로 인덱싱 된 사용자 정의 유형의 테이블을 원하십니까? 어쨌든 test1 선언은 아래 사용 방법과 일치하지 않습니다.

declare 
    TYPE test1 IS TABLE OF t_loc INDEX BY VARCHAR2(100); 
    test2 test1; 
begin 
    test2('abad') := t_loc('ahmedabad','CT'); 
    test2('bang') := t_loc('bangalure','S'); 
    test2('surat') := t_loc('Surat','C'); 

    dbms_output.put_line(test2('surat').name); 
end; 
/
:

다음 코드를 사용해보십시오