在Oracle中更改对象类型定义以添加更多列

时间:2013-04-08 07:22:57

标签: sql oracle plsql oracle10g type-conversion

我在 PL / SQL 过程中使用包含大约36个不同数据列的自定义类型作为数组,这允许我以数组的形式返回数据,我根据需要修改我的前端。根据要求,我需要修改自定义类型,现在需要修改我发送的现有列数据,即我需要再添加2个列数据。是否可以使用ALTER修改现有数据类型,还是只需要使用Replace? 我正在使用Oracle 10g,我正在寻找一种仅使用ALTER

的方法

我的自定义数据类型的现有定义是:

create or replace
Type TYPE_RD_CONTRACT_PRODUCT_PRICE as Object
(
       CONTRACT_PRODUCT_TERM_ID NUMBER,
       SHIP_FROM_ORG_ID         NUMBER,
       SHIP_FROM_ORG_NUMBER     VARCHAR2(64),
       SHIP_FROM_ORG_NAME       VARCHAR2(128),
       SHIP_TO_ORG_ID           NUMBER,
       SHIP_TO_ORG_NUMBER       VARCHAR2(64),
       SHIP_TO_ORG_NAME         VARCHAR2(128),
       PRICE_START_DATE         DATE,
       PRICE_END_DATE           DATE,
       FOB_PRICE                NUMBER(18,4),
       DELIVERED_PRICE          NUMBER(18,4),
       MISC_FEE                 NUMBER(18,4),
       PRICE_BASIS_ID           NUMBER,
       PRICE_BASIS              VARCHAR2(32),
       MISC_FEE_BASIS_ID        NUMBER,
       MISC_FEE_BASIS           VARCHAR2(32),
       FREIGHT_START_DATE       DATE,
       FREIGHT_END_DATE         DATE,
         FREIGHT_FUEL_DESC_ID     NUMBER,
       TARGET_FREIGHT_BRACKET   NUMBER(18,4),
       FUEL_SURCHARGE_TYPE_NAME VARCHAR2(64),
       TRUCKLOAD_QTY            NUMBER(18,4),
       MILEAGE                  NUMBER(18,4),
       FREIGHT_BRACKET_BASIS    VARCHAR2(32),
       TOTAL_BASE_FREIGHT       NUMBER(18,4),
       MISC_FEE_1               NUMBER(18,4),
       MISC_FEE_2               NUMBER(18,4),
       MISC_FEE_3               NUMBER(18,4),
       MISC_FEE_4               NUMBER(18,4),
       MISC_FEE_5               NUMBER(18,4),
       FREIGHT_MANAGEMENT_TYPE_ID NUMBER,
         FREIGHT_MANAGEMENT_TYPE_NAME VARCHAR2(64),
         REDI_DCT_ORG_ID          NUMBER,
       REDI_DCT_ORG_NUMBER      VARCHAR2(64),
       REDI_DCT_ORG_NAME        VARCHAR2(128),
       IS_REDI_DCT             NUMBER,
       FREIGHT_COST_BASIS_ID   NUMBER
);

1 个答案:

答案 0 :(得分:1)

根据documentation,您可以使用alter type添加属性:

alter type TYPE_RD_CONTRACT_PRODUCT_PRICE add attribute (new_val integer);