Swaminathan K
asked on
Need help on sql
Hi ,
I have an column called comments in COMMENTS table which is an CLOB column, I need to change the column data type from CLOB to VARCHAR2. Below is the code
DROP TABLE COMM_INTERIM;
CREATE TABLE COMM_INTERIM
( COMMENTARY_ID NUMBER ,
SUBJECT VARCHAR2(400 CHAR) ,
COMMENTS varchar2(4000 char),
CREATED_BY NUMBER ,
LAST_MODIFIED_DATE DATE,
CREATED_DATE DATE ,
LAST_MODIFIED_BY NUMBER ,
VISIBILITY_TYPE NUMBER ,
DEAL_GROUP_ID NUMBER ,
LOCK_VERSION NUMBER ,
VISIBILITY_RESOURCE_ID NUMBER ,
DEAL_ID NUMBER,
TRANCHE_ID NUMBER,
ORGANIZATION1_ID NUMBER,
ORGANIZATION1_MEMBER_ID NUMBER,
ORGANIZATION2_ID NUMBER,
ORGANIZATION2_MEMBER_ID NUMBER,
ORGANIZATION3_ID NUMBER,
ORGANIZATION3_MEMBER_ID NUMBER,
EXTERNAL_ID VARCHAR2(100 CHAR),
LEVEL_OF_ACCESS_ID NUMBER
);
Declare
col_mapping varchar2 (2000);
BEGIN
-- map all the columns in the interim table to the original table
col_mapping :=
'COMMENTARY_ID COMMENTARY_ID , ' ||
'SUBJECT SUBJECT , ' ||
'DBMS_LOB.SUBSTR(COMMENTS, 1,4000) COMMENTS , '||
'CREATED_BY CREATED_BY, LAST_MODIFIED_DATE LAST_MODIFIED_DATE,'
||'CREATED_DATE CREATED_DATE , LAST_MODIFIED_BY LAST_MODIFIED_BY ,VISIBILITY_TYPE VISIBILITY_TYPE ,'
||'DEAL_GROUP_ID DEAL_GROUP_ID,LOCK_VERSION LOCK_VERSION,VISIBILITY_RE SOURCE_ID VISIBILITY_RESOURCE_ID,'||
'DEAL_ID DEAL_ID,TRANCHE_ID TRANCHE_ID,ORGANIZATION1_I D ORGANIZATION1_ID,ORGANIZAT ION1_MEMBE R_ID ORGANIZATION1_MEMBER_ID,'
||'ORGANIZATION2_ID ORGANIZATION2_ID,ORGANIZAT ION2_MEMBE R_ID ORGANIZATION2_MEMBER_ID,OR GANIZATION 3_ID ORGANIZATION3_ID,'
||'ORGANIZATION3_MEMBER_ID ORGANIZATION3_MEMBER_ID,EX TERNAL_ID EXTERNAL_ID,LEVEL_OF_ACCES S_ID LEVEL_OF_ACCESS_ID';
dbms_redefinition.start_re def_table( 'SCOTT', 'COMMENTS', 'COMM_INTERIM', col_mapping);
END;
/
declare
error_count pls_integer := 0;
BEGIN
dbms_redefinition.copy_tab le_depende nts('SCOTT ', 'COMMENTS', 'COMM_INTERIM',
1, true,true,true,false,
error_count);
dbms_output.put_line('erro rs := ' || to_char(error_count));
END;
/
exec dbms_redefinition.finish_r edef_table ('SCOTT', 'COMMENTS', 'COMM_INTERIM');
/
After running the above script file geting the below error, any help is really appreciated.
Table created.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
declare
*
ERROR at line 1:
ORA-23540: Redefinition not defined or initiated
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "SYS.DBMS_REDEFINITION", line 1809
ORA-06512: at line 4
I have an column called comments in COMMENTS table which is an CLOB column, I need to change the column data type from CLOB to VARCHAR2. Below is the code
DROP TABLE COMM_INTERIM;
CREATE TABLE COMM_INTERIM
( COMMENTARY_ID NUMBER ,
SUBJECT VARCHAR2(400 CHAR) ,
COMMENTS varchar2(4000 char),
CREATED_BY NUMBER ,
LAST_MODIFIED_DATE DATE,
CREATED_DATE DATE ,
LAST_MODIFIED_BY NUMBER ,
VISIBILITY_TYPE NUMBER ,
DEAL_GROUP_ID NUMBER ,
LOCK_VERSION NUMBER ,
VISIBILITY_RESOURCE_ID NUMBER ,
DEAL_ID NUMBER,
TRANCHE_ID NUMBER,
ORGANIZATION1_ID NUMBER,
ORGANIZATION1_MEMBER_ID NUMBER,
ORGANIZATION2_ID NUMBER,
ORGANIZATION2_MEMBER_ID NUMBER,
ORGANIZATION3_ID NUMBER,
ORGANIZATION3_MEMBER_ID NUMBER,
EXTERNAL_ID VARCHAR2(100 CHAR),
LEVEL_OF_ACCESS_ID NUMBER
);
Declare
col_mapping varchar2 (2000);
BEGIN
-- map all the columns in the interim table to the original table
col_mapping :=
'COMMENTARY_ID COMMENTARY_ID , ' ||
'SUBJECT SUBJECT , ' ||
'DBMS_LOB.SUBSTR(COMMENTS,
'CREATED_BY CREATED_BY, LAST_MODIFIED_DATE LAST_MODIFIED_DATE,'
||'CREATED_DATE CREATED_DATE , LAST_MODIFIED_BY LAST_MODIFIED_BY ,VISIBILITY_TYPE VISIBILITY_TYPE ,'
||'DEAL_GROUP_ID DEAL_GROUP_ID,LOCK_VERSION
'DEAL_ID DEAL_ID,TRANCHE_ID TRANCHE_ID,ORGANIZATION1_I
||'ORGANIZATION2_ID ORGANIZATION2_ID,ORGANIZAT
||'ORGANIZATION3_MEMBER_ID
dbms_redefinition.start_re
END;
/
declare
error_count pls_integer := 0;
BEGIN
dbms_redefinition.copy_tab
1, true,true,true,false,
error_count);
dbms_output.put_line('erro
END;
/
exec dbms_redefinition.finish_r
/
After running the above script file geting the below error, any help is really appreciated.
Table created.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
declare
*
ERROR at line 1:
ORA-23540: Redefinition not defined or initiated
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "SYS.DBMS_REDEFINITION", line 1809
ORA-06512: at line 4
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER