create or replace type kktype as object (kk1 varchar2(10),kk2 number);
定义一名为kktype的自定义类型。
create table test3(aa1 number,aa2 kktype);
建表,含自定义类型kktype;
在PL/SQL Developer中编辑数据,可在窗格中看到aa1,aa1.kk1,aa1.kk2三列,可输入数据。但如何查询数据呢?
select * from test3;
将显示如上3列。正常。
select aa1 from test3;
将显示两列,也正常。
select aa1.kk1 from test3;
此时肯定出错。正确的访问方式是使用表的别名:
select t.aa1.kk1 from test3 t;
原因为何,不明。同样,在insert时,似乎无法插入自定义数据类型的单元素。必须将自定义类型整体插入。
insert into test3(aa2) values(kktype('sssss',33));
由于可用别名,所以update语句可以更新自定义类型的子元素。
update test3 t set t.aa2.kk1='ffffffff' where t.aa1=33;
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/351.html