大家如果碰到Oracle对象中后期增加属性,增加继承性,增加自定义构造函数的时候可以参考我的做法,我觉得不一定有很多人有我这种经历.好像网上这方面的资料很少的,所以贴出来。
CREATE OR REPLACE TYPE TMS.STOP_DETAIL
AS OBJECT
(
STOP_DETAIL_ID INTEGER,
BOL_NO VARCHAR2(16),
PICK_UP_DROP_OFF_IND VARCHAR2(1),
SCAN_ID VARCHAR2(255),
DESCRIPTION VARCHAR2(20),
PACKAGE_TYPE VARCHAR2(10),
LINE_STATUS VARCHAR2(1),
SCAN_IND VARCHAR2(1),
EXCEPTION_CODE VARCHAR2(4),
UPLOADED_DT DATE,
SCAN_TIMESTAMP DATE,
WEIGHT INTEGER,
WEIGHT_UOM VARCHAR2(3),
STOP_ID INTEGER,
sync_status CHAR(1),
exception_comment VARCHAR2(255)
--pos po_stop_details
)
alter type STOP_DETAIL
add attribute
(
container_id varchar2(255),
next_detail_id integer,
delete_flag varchar2(1),
reserve1 varchar2(255),
reserve2 varchar2(255)
)
cascade including table data
alter type STOP_DETAIL
add constructor function STOP_DETAIL(
STOP_DETAIL_ID INTEGER,
BOL_NO VARCHAR2,
PICK_UP_DROP_OFF_IND VARCHAR2,
SCAN_ID VARCHAR2,
DESCRIPTION VARCHAR2,
PACKAGE_TYPE VARCHAR2,
LINE_STATUS VARCHAR2,
SCAN_IND VARCHAR2,
EXCEPTION_CODE VARCHAR2,
UPLOADED_DT DATE,
SCAN_TIMESTAMP DATE,
WEIGHT INTEGER,
WEIGHT_UOM VARCHAR2,
STOP_ID INTEGER,
sync_status CHAR,
exception_comment VARCHAR2
)
return self as result
CASCADE INCLUDING TABLE DATA
alter type STOP_DETAIL
drop constructor function STOP_DETAIL(
STOP_DETAIL_ID INTEGER,
BOL_NO VARCHAR2,
PICK_UP_DROP_OFF_IND VARCHAR2,
SCAN_ID VARCHAR2,
DESCRIPTION VARCHAR2,
PACKAGE_TYPE VARCHAR2,
LINE_STATUS VARCHAR2,
SCAN_IND VARCHAR2,
EXCEPTION_CODE VARCHAR2,
UPLOADED_DT DATE,
SCAN_TIMESTAMP DATE,
WEIGHT INTEGER,
WEIGHT_UOM VARCHAR2,
STOP_ID INTEGER,
sync_status CHAR,
exception_comment VARCHAR2
)
return self as result
CASCADE INCLUDING TABLE DATA
alter type STOP_DETAIL
drop attribute
(
container_id,
next_detail_id,
delete_flag,
reserve1 ,
reserve2
)
cascade including table data
alter type STOP_DETAIL
INSTANTIABLE
not final
cascade including table data
alter type STOP_DETAIL
INSTANTIABLE
not final
cascade including table data
alter type STOP_DETAIL
INSTANTIABLE
not final
cascade including table data
alter type STOP_DETAIL
INSTANTIABLE
not final
cascade including table data
alter type STOP_DETAIL
INSTANTIABLE
not final
cascade including table data
alter type STOP_DETAIL
INSTANTIABLE
not final
cascade including table data
alter type STOP_DETAIL
INSTANTIABLE
not final
cascade including table data
alter type STOP_DETAIL
INSTANTIABLE
not final
cascade including table data
alter type STOP_DETAIL
INSTANTIABLE
not final
cascade including table data
alter type STOP_DETAIL
INSTANTIABLE
not final
cascade including table data
alter type STOP_DETAIL
INSTANTIABLE
not final
cascade not including table data
alter type STOP_DETAIL
not final
cascade not including table data
alter type STOP_DETAIL
INSTANTIABLE
not final
cascade not including table data
alter type STOP_DETAIL
not final
cascade not including table data
alter type STOP_DETAIL
INSTANTIABLE
cascade not including table data
alter type STOP_DETAIL
not final
cascade not including table data
alter type STOP_DETAIL
INSTANTIABLE
cascade not including table data
/
DROP SYNONYM WEBSRV.STOP_DETAIL;
CREATE SYNONYM WEBSRV.STOP_DETAIL FOR TMS.STOP_DETAIL;
GRANT EXECUTE ON TMS.STOP_DETAIL TO WEBSRV;
CREATE OR REPLACE TYPE TMS.STOP_DETAIL_EX UNDER TMS.STOP_DETAIL
(
container_id varchar2(255),
next_detail_id integer,
delete_flag varchar2(1),
reserve1 varchar2(255),
reserve2 varchar2(255)
)
INSTANTIABLE
NOT FINAL;
/
DROP SYNONYM WEBSRV.STOP_DETAIL_EX;
CREATE SYNONYM WEBSRV.STOP_DETAIL_EX FOR TMS.STOP_DETAIL_EX;
GRANT EXECUTE ON TMS.STOP_DETAIL_EX TO WEBSRV;