更改 Oracle 中的对象类型定义以添加更多列
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/15873477/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Alter Object Type Definition in Oracle to add more columns
提问by Ajo Koshy
I am using a custom type with around 36 different data columns as an array in my PL/SQLprocedure which allows me return data in the form of array, which i modify at my front end as required. As per the requirement, i need to modify the custom type which now requires modification of the existing columns data that i send , i.e, i need to add 2 more column data to the same. Is it possible to modify the existing data type using ALTER
or do i need to use Replace
only for the same?
I am using Oracle 10g and am looking for a way to use ALTER
only
我在我的PL/SQL过程中使用具有大约 36 个不同数据列的自定义类型作为数组,它允许我以数组的形式返回数据,我根据需要在前端修改它。根据要求,我需要修改自定义类型,现在需要修改我发送的现有列数据,即,我需要再添加 2 个列数据。是否可以修改现有的数据类型,ALTER
或者我Replace
只需要使用相同的数据类型?我正在使用 Oracle 10g 并且正在寻找一种ALTER
仅使用的方法
The existing definition of my custom data type is :
我的自定义数据类型的现有定义是:
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
);
采纳答案by Chris Saxon
As per the documentation, you can use alter type
to add attributes:
根据文档,您可以使用alter type
添加属性:
alter type TYPE_RD_CONTRACT_PRODUCT_PRICE add attribute (new_val integer);
alter type TYPE_RD_CONTRACT_PRODUCT_PRICE add attribute (new_val integer);