oracle 字定义类型
请问在oracle中能否定义一个变长的数组类型自段
我的意思是定义一个字段:该字段包括一个arrylist数组和一个时间变量.
struct 
{
t   datetime;
qlr  arraylist;
}
定义这样一个类型的字段的用处是:
如果一块宗地的权利人我无法知道变更几次,因此我用该字段来保存宗地的若干权利人和变更时间.
请问能否实现,如果能可否实现修改功能.

解决方案 »

  1.   

    这个可以用嵌套表来实现
    举个例子:
    CREATE OR REPLACE type t_array as varray(99999) of varchar2(20);
    CREATE TABLE NestTable
    (
        ID                             NUMBER NOT NULL,
        T                              Date,
        QLR                            T_ARRAY,
        PRIMARY KEY (ID)
    )
    insert into NestTable(ID,T,QLR) values(1,sysdate,t_array('A','B','C'))
    insert into NestTable(ID,T,QLR) values(2,sysdate,t_array('D','E','F'))
    insert into NestTable(ID,T,QLR) values(3,sysdate,t_array('G','H','I'))
    select ID,T,n.* from doery,table(QLR) N
      

  2.   

    用嵌套表倒是可以实现,但是插入数据,更新的时候都得用pl/sql应该把两个表拆开,一个是普通表,另一个是更新表,用ID关联这多方便
      

  3.   

    也可以用SQL实现,plsql制式可以进行结构化处理而已。
    当然,差分表也是一个不错的选择。