2012-01-24 83 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; 
/
相關問題