1

我在我的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
);
4

1 回答 1

1

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

alter type TYPE_RD_CONTRACT_PRODUCT_PRICE add attribute (new_val integer);

于 2013-04-08T07:48:39.843 回答