2012-01-24 85 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; 
/
相关问题