使用id代码将对象值存储在类型表的数组中。
对象创建:
Create or replace type t_loc as Object
(
name varchar2(255 byte),
idt char(2)
);
PLSQL Block
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中不可能吗?或者有什么不对吗?
答案 0 :(得分: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;
/
答案 1 :(得分: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;