【问题标题】:Alter Object Type Definition in Oracle to add more columns在 Oracle 中更改对象类型定义以添加更多列
【发布时间】:2013-03-30 04:52:21
【问题描述】:

我在我的 PL/SQL 过程中使用了一个包含大约 36 个不同数据列的自定义类型作为数组,它允许我以 array 的形式返回数据,这我根据需要在前端进行修改。根据要求,我需要修改自定义类型,现在需要修改我发送的现有列数据,即我需要再添加 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
);

【问题讨论】:

    标签: sql oracle plsql oracle10g type-conversion


    【解决方案1】:

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

    alter type TYPE_RD_CONTRACT_PRODUCT_PRICE add attribute (new_val integer);

    【讨论】:

    • 可以在同一个语句中添加多个属性吗?
    猜你喜欢
    • 2015-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 2013-09-09
    • 2011-03-11
    相关资源
    最近更新 更多