代码改变世界

博主对Oracle对象追加属性,更改构造函数,继承方面的脚本使用记录.

2010-04-15 12:37  Tracy.  阅读(554)  评论(0编辑  收藏  举报

 

大家如果碰到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;