Wednesday, August 22, 2012

Changing datatype for a table column in oracle



1.)Check For any constraints on that table:-

select constraint_name , constraint_type from user_constraints where table_name='XXXX';

2.)Drop that constraint after taking the backup of DDL.

select dbms_metadata.get_ddl('CONSTRAINT','XXXX','SCHEMA_NAME') from dual;


3.)Adding Temporary column with new datatype:-

alter table XXXXX add (REFERENCE_TXN_ID_TEMP VARCHAR2(51));

4.)Copy existing column data to new temp column:-

update table XXXXXX set REFERENCE_TXN_ID_TEMP=REFERENCE_TXN_ID;
commit;

5.)Mark existing column as Unused:-

alter table XXXXX set unused column REFERENCE_TXN_ID;

6.)Rename Temp Column to Original Column:-

alter table XXXXX rename column REFERENCE_TXN_ID_TEMP to REFERENCE_TXN_ID;

7.)Drop Un-used Column:-

alter table drop unused column;

No comments:

Post a Comment