586: declare
587: cdyn integer;
588: rdyn integer;
589: begin
590: cdyn := dbms_sql.open_cursor;
591: dbms_sql.parse(cdyn,'drop database link '||dbLinkName,dbms_sql.native);
592: rdyn := dbms_sql.execute(cdyn);
593: dbms_sql.close_cursor(cdyn);
594: exception
587: cdyn integer;
588: rdyn integer;
589: begin
590: cdyn := dbms_sql.open_cursor;
591: dbms_sql.parse(cdyn,'drop database link '||dbLinkName,dbms_sql.native);
592: rdyn := dbms_sql.execute(cdyn);
593: dbms_sql.close_cursor(cdyn);
594: exception
595: when others then
588: rdyn integer;
589: begin
590: cdyn := dbms_sql.open_cursor;
591: dbms_sql.parse(cdyn,'drop database link '||dbLinkName,dbms_sql.native);
592: rdyn := dbms_sql.execute(cdyn);
593: dbms_sql.close_cursor(cdyn);
594: exception
595: when others then
596: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
589: begin
590: cdyn := dbms_sql.open_cursor;
591: dbms_sql.parse(cdyn,'drop database link '||dbLinkName,dbms_sql.native);
592: rdyn := dbms_sql.execute(cdyn);
593: dbms_sql.close_cursor(cdyn);
594: exception
595: when others then
596: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
597: --'Migration was unable to delete the database link because of %ERRORTEXT.'
592: rdyn := dbms_sql.execute(cdyn);
593: dbms_sql.close_cursor(cdyn);
594: exception
595: when others then
596: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
597: --'Migration was unable to delete the database link because of %ERRORTEXT.'
598: report(CZ_UTILS.GET_TEXT('CZ_MIGR_NO_LINK_DELETE', 'ERRORTEXT', SQLERRM), URGENCY_WARNING);
599: RETURN SKIPPABLE_ERROR;
600: end;
680: return integer is
681: cdyn integer;
682: rdyn integer;
683: rpkc integer;
684: ColumnName dbms_sql.varchar2_table;
685: DataType dbms_sql.varchar2_table;
686: Nullable dbms_sql.varchar2_table;
687: DataLength dbms_sql.number_table;
688: begin
681: cdyn integer;
682: rdyn integer;
683: rpkc integer;
684: ColumnName dbms_sql.varchar2_table;
685: DataType dbms_sql.varchar2_table;
686: Nullable dbms_sql.varchar2_table;
687: DataLength dbms_sql.number_table;
688: begin
689:
682: rdyn integer;
683: rpkc integer;
684: ColumnName dbms_sql.varchar2_table;
685: DataType dbms_sql.varchar2_table;
686: Nullable dbms_sql.varchar2_table;
687: DataLength dbms_sql.number_table;
688: begin
689:
690: if(NoIntegrityCheck)then return NO_ERROR; end if;
683: rpkc integer;
684: ColumnName dbms_sql.varchar2_table;
685: DataType dbms_sql.varchar2_table;
686: Nullable dbms_sql.varchar2_table;
687: DataLength dbms_sql.number_table;
688: begin
689:
690: if(NoIntegrityCheck)then return NO_ERROR; end if;
691:
688: begin
689:
690: if(NoIntegrityCheck)then return NO_ERROR; end if;
691:
692: cdyn := dbms_sql.open_cursor;
693: dbms_sql.parse(cdyn,
694: '(SELECT column_name, data_type, nullable, data_length ' ||
695: ' FROM all_tab_columns ' ||
696: ' WHERE table_name = ''' || upper(inTableName) || '''' ||
689:
690: if(NoIntegrityCheck)then return NO_ERROR; end if;
691:
692: cdyn := dbms_sql.open_cursor;
693: dbms_sql.parse(cdyn,
694: '(SELECT column_name, data_type, nullable, data_length ' ||
695: ' FROM all_tab_columns ' ||
696: ' WHERE table_name = ''' || upper(inTableName) || '''' ||
697: ' AND owner = ''' || CONFIGURATOR_SCHEMA || '''' ||
709: ' SELECT column_name, data_type, nullable, data_length ' ||
710: ' FROM all_tab_columns ' ||
711: ' WHERE table_name = ''' || upper(inTableName) || '''' ||
712: ' AND owner = ''' || CONFIGURATOR_SCHEMA || ''')',
713: dbms_sql.native);
714: dbms_sql.define_array(cdyn,1,ColumnName,100,1);
715: dbms_sql.define_array(cdyn,2,DataType,100,1);
716: dbms_sql.define_array(cdyn,3,Nullable,100,1);
717: dbms_sql.define_array(cdyn,4,DataLength,100,1);
710: ' FROM all_tab_columns ' ||
711: ' WHERE table_name = ''' || upper(inTableName) || '''' ||
712: ' AND owner = ''' || CONFIGURATOR_SCHEMA || ''')',
713: dbms_sql.native);
714: dbms_sql.define_array(cdyn,1,ColumnName,100,1);
715: dbms_sql.define_array(cdyn,2,DataType,100,1);
716: dbms_sql.define_array(cdyn,3,Nullable,100,1);
717: dbms_sql.define_array(cdyn,4,DataLength,100,1);
718: rdyn := dbms_sql.execute_and_fetch(cdyn);
711: ' WHERE table_name = ''' || upper(inTableName) || '''' ||
712: ' AND owner = ''' || CONFIGURATOR_SCHEMA || ''')',
713: dbms_sql.native);
714: dbms_sql.define_array(cdyn,1,ColumnName,100,1);
715: dbms_sql.define_array(cdyn,2,DataType,100,1);
716: dbms_sql.define_array(cdyn,3,Nullable,100,1);
717: dbms_sql.define_array(cdyn,4,DataLength,100,1);
718: rdyn := dbms_sql.execute_and_fetch(cdyn);
719: dbms_sql.column_value(cdyn,1,ColumnName);
712: ' AND owner = ''' || CONFIGURATOR_SCHEMA || ''')',
713: dbms_sql.native);
714: dbms_sql.define_array(cdyn,1,ColumnName,100,1);
715: dbms_sql.define_array(cdyn,2,DataType,100,1);
716: dbms_sql.define_array(cdyn,3,Nullable,100,1);
717: dbms_sql.define_array(cdyn,4,DataLength,100,1);
718: rdyn := dbms_sql.execute_and_fetch(cdyn);
719: dbms_sql.column_value(cdyn,1,ColumnName);
720: dbms_sql.column_value(cdyn,2,DataType);
713: dbms_sql.native);
714: dbms_sql.define_array(cdyn,1,ColumnName,100,1);
715: dbms_sql.define_array(cdyn,2,DataType,100,1);
716: dbms_sql.define_array(cdyn,3,Nullable,100,1);
717: dbms_sql.define_array(cdyn,4,DataLength,100,1);
718: rdyn := dbms_sql.execute_and_fetch(cdyn);
719: dbms_sql.column_value(cdyn,1,ColumnName);
720: dbms_sql.column_value(cdyn,2,DataType);
721: dbms_sql.column_value(cdyn,3,Nullable);
714: dbms_sql.define_array(cdyn,1,ColumnName,100,1);
715: dbms_sql.define_array(cdyn,2,DataType,100,1);
716: dbms_sql.define_array(cdyn,3,Nullable,100,1);
717: dbms_sql.define_array(cdyn,4,DataLength,100,1);
718: rdyn := dbms_sql.execute_and_fetch(cdyn);
719: dbms_sql.column_value(cdyn,1,ColumnName);
720: dbms_sql.column_value(cdyn,2,DataType);
721: dbms_sql.column_value(cdyn,3,Nullable);
722: dbms_sql.column_value(cdyn,4,DataLength);
715: dbms_sql.define_array(cdyn,2,DataType,100,1);
716: dbms_sql.define_array(cdyn,3,Nullable,100,1);
717: dbms_sql.define_array(cdyn,4,DataLength,100,1);
718: rdyn := dbms_sql.execute_and_fetch(cdyn);
719: dbms_sql.column_value(cdyn,1,ColumnName);
720: dbms_sql.column_value(cdyn,2,DataType);
721: dbms_sql.column_value(cdyn,3,Nullable);
722: dbms_sql.column_value(cdyn,4,DataLength);
723: dbms_sql.close_cursor(cdyn);
716: dbms_sql.define_array(cdyn,3,Nullable,100,1);
717: dbms_sql.define_array(cdyn,4,DataLength,100,1);
718: rdyn := dbms_sql.execute_and_fetch(cdyn);
719: dbms_sql.column_value(cdyn,1,ColumnName);
720: dbms_sql.column_value(cdyn,2,DataType);
721: dbms_sql.column_value(cdyn,3,Nullable);
722: dbms_sql.column_value(cdyn,4,DataLength);
723: dbms_sql.close_cursor(cdyn);
724:
717: dbms_sql.define_array(cdyn,4,DataLength,100,1);
718: rdyn := dbms_sql.execute_and_fetch(cdyn);
719: dbms_sql.column_value(cdyn,1,ColumnName);
720: dbms_sql.column_value(cdyn,2,DataType);
721: dbms_sql.column_value(cdyn,3,Nullable);
722: dbms_sql.column_value(cdyn,4,DataLength);
723: dbms_sql.close_cursor(cdyn);
724:
725: if(rdyn > 0)then
718: rdyn := dbms_sql.execute_and_fetch(cdyn);
719: dbms_sql.column_value(cdyn,1,ColumnName);
720: dbms_sql.column_value(cdyn,2,DataType);
721: dbms_sql.column_value(cdyn,3,Nullable);
722: dbms_sql.column_value(cdyn,4,DataLength);
723: dbms_sql.close_cursor(cdyn);
724:
725: if(rdyn > 0)then
726:
719: dbms_sql.column_value(cdyn,1,ColumnName);
720: dbms_sql.column_value(cdyn,2,DataType);
721: dbms_sql.column_value(cdyn,3,Nullable);
722: dbms_sql.column_value(cdyn,4,DataLength);
723: dbms_sql.close_cursor(cdyn);
724:
725: if(rdyn > 0)then
726:
727: --'Definition of the table ''%TABLENAME'' is different in source and target schema.'
746: return NO_ERROR;
747:
748: exception
749: when others then
750: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
751: --'Unable to compare columns for the table ''%TABLENAME'': %ERRORTEXT.'
752: report(CZ_UTILS.GET_TEXT('CZ_MIGR_COLUMNS_COMPARE', 'TABLENAME', inTableName, 'ERRORTEXT', SQLERRM), URGENCY_ERROR);
753: return FATAL_ERROR;
754: end;
786: cdyn integer;
787: rdyn integer;
788: xerr boolean;
789: pkName all_constraints.constraint_name%type;
790: ColumnName dbms_sql.varchar2_table;
791: cursor c_getpkname is
792: SELECT constraint_name FROM all_constraints
793: WHERE table_name = upper(inTableName)
794: AND owner = CONFIGURATOR_SCHEMA
801:
802: rdyn := 0;
803:
804: if(xerr)then
805: cdyn := dbms_sql.open_cursor;
806: dbms_sql.parse(cdyn,
807: '(SELECT column_name FROM all_cons_columns ' ||
808: ' WHERE constraint_name = ''' || pkName || '''' ||
809: ' AND owner = ''' || CONFIGURATOR_SCHEMA || '''' ||
802: rdyn := 0;
803:
804: if(xerr)then
805: cdyn := dbms_sql.open_cursor;
806: dbms_sql.parse(cdyn,
807: '(SELECT column_name FROM all_cons_columns ' ||
808: ' WHERE constraint_name = ''' || pkName || '''' ||
809: ' AND owner = ''' || CONFIGURATOR_SCHEMA || '''' ||
810: ' MINUS '||
818: ' MINUS '||
819: 'SELECT column_name FROM all_cons_columns ' ||
820: ' WHERE constraint_name = ''' || pkName || '''' ||
821: ' AND owner = ''' || CONFIGURATOR_SCHEMA || ''')',
822: dbms_sql.native);
823: dbms_sql.define_array(cdyn,1,ColumnName,100,1);
824: rdyn := dbms_sql.execute_and_fetch(cdyn);
825: dbms_sql.column_value(cdyn,1,ColumnName);
826: dbms_sql.close_cursor(cdyn);
819: 'SELECT column_name FROM all_cons_columns ' ||
820: ' WHERE constraint_name = ''' || pkName || '''' ||
821: ' AND owner = ''' || CONFIGURATOR_SCHEMA || ''')',
822: dbms_sql.native);
823: dbms_sql.define_array(cdyn,1,ColumnName,100,1);
824: rdyn := dbms_sql.execute_and_fetch(cdyn);
825: dbms_sql.column_value(cdyn,1,ColumnName);
826: dbms_sql.close_cursor(cdyn);
827: end if;
820: ' WHERE constraint_name = ''' || pkName || '''' ||
821: ' AND owner = ''' || CONFIGURATOR_SCHEMA || ''')',
822: dbms_sql.native);
823: dbms_sql.define_array(cdyn,1,ColumnName,100,1);
824: rdyn := dbms_sql.execute_and_fetch(cdyn);
825: dbms_sql.column_value(cdyn,1,ColumnName);
826: dbms_sql.close_cursor(cdyn);
827: end if;
828:
821: ' AND owner = ''' || CONFIGURATOR_SCHEMA || ''')',
822: dbms_sql.native);
823: dbms_sql.define_array(cdyn,1,ColumnName,100,1);
824: rdyn := dbms_sql.execute_and_fetch(cdyn);
825: dbms_sql.column_value(cdyn,1,ColumnName);
826: dbms_sql.close_cursor(cdyn);
827: end if;
828:
829: if(rdyn > 0)then
822: dbms_sql.native);
823: dbms_sql.define_array(cdyn,1,ColumnName,100,1);
824: rdyn := dbms_sql.execute_and_fetch(cdyn);
825: dbms_sql.column_value(cdyn,1,ColumnName);
826: dbms_sql.close_cursor(cdyn);
827: end if;
828:
829: if(rdyn > 0)then
830:
847: return NO_ERROR;
848:
849: exception
850: when others then
851: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
852: --'Unable to compare primary key columns for the table ''%TABLENAME'': %ERRORTEXT.'
853: report(CZ_UTILS.GET_TEXT('CZ_MIGR_PK_COMPARE', 'TABLENAME', inTableName, 'ERRORTEXT', SQLERRM), URGENCY_ERROR);
854: return FATAL_ERROR;
855: end;
899: rdyn integer;
900: begin
901:
902: begin
903: cdyn := dbms_sql.open_cursor;
904: dbms_sql.parse(cdyn,'select count(*) from '||inTableName,dbms_sql.native);
905: dbms_sql.define_column(cdyn, 1, nCountLocal);
906: rdyn := dbms_sql.execute_and_fetch(cdyn);
907: dbms_sql.column_value(cdyn, 1, nCountLocal);
900: begin
901:
902: begin
903: cdyn := dbms_sql.open_cursor;
904: dbms_sql.parse(cdyn,'select count(*) from '||inTableName,dbms_sql.native);
905: dbms_sql.define_column(cdyn, 1, nCountLocal);
906: rdyn := dbms_sql.execute_and_fetch(cdyn);
907: dbms_sql.column_value(cdyn, 1, nCountLocal);
908: dbms_sql.close_cursor(cdyn);
901:
902: begin
903: cdyn := dbms_sql.open_cursor;
904: dbms_sql.parse(cdyn,'select count(*) from '||inTableName,dbms_sql.native);
905: dbms_sql.define_column(cdyn, 1, nCountLocal);
906: rdyn := dbms_sql.execute_and_fetch(cdyn);
907: dbms_sql.column_value(cdyn, 1, nCountLocal);
908: dbms_sql.close_cursor(cdyn);
909: exception
902: begin
903: cdyn := dbms_sql.open_cursor;
904: dbms_sql.parse(cdyn,'select count(*) from '||inTableName,dbms_sql.native);
905: dbms_sql.define_column(cdyn, 1, nCountLocal);
906: rdyn := dbms_sql.execute_and_fetch(cdyn);
907: dbms_sql.column_value(cdyn, 1, nCountLocal);
908: dbms_sql.close_cursor(cdyn);
909: exception
910: when others then
903: cdyn := dbms_sql.open_cursor;
904: dbms_sql.parse(cdyn,'select count(*) from '||inTableName,dbms_sql.native);
905: dbms_sql.define_column(cdyn, 1, nCountLocal);
906: rdyn := dbms_sql.execute_and_fetch(cdyn);
907: dbms_sql.column_value(cdyn, 1, nCountLocal);
908: dbms_sql.close_cursor(cdyn);
909: exception
910: when others then
911: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
904: dbms_sql.parse(cdyn,'select count(*) from '||inTableName,dbms_sql.native);
905: dbms_sql.define_column(cdyn, 1, nCountLocal);
906: rdyn := dbms_sql.execute_and_fetch(cdyn);
907: dbms_sql.column_value(cdyn, 1, nCountLocal);
908: dbms_sql.close_cursor(cdyn);
909: exception
910: when others then
911: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
912: --'Verification of the table ''%TABLENAME'' in the target schema failed: %ERRORTEXT.'
907: dbms_sql.column_value(cdyn, 1, nCountLocal);
908: dbms_sql.close_cursor(cdyn);
909: exception
910: when others then
911: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
912: --'Verification of the table ''%TABLENAME'' in the target schema failed: %ERRORTEXT.'
913: report(CZ_UTILS.GET_TEXT('CZ_MIGR_TARGET_TABLE', 'TABLENAME', inTableName, 'ERRORTEXT', SQLERRM), URGENCY_WARNING);
914: return SKIPPABLE_ERROR;
915: end;
914: return SKIPPABLE_ERROR;
915: end;
916:
917: begin
918: cdyn := dbms_sql.open_cursor;
919: dbms_sql.parse(cdyn,'select count(*) from '||inTableName||'@'||dbLinkName,dbms_sql.native);
920: dbms_sql.define_column(cdyn, 1, nCountRemote);
921: rdyn := dbms_sql.execute_and_fetch(cdyn);
922: dbms_sql.column_value(cdyn, 1, nCountRemote);
915: end;
916:
917: begin
918: cdyn := dbms_sql.open_cursor;
919: dbms_sql.parse(cdyn,'select count(*) from '||inTableName||'@'||dbLinkName,dbms_sql.native);
920: dbms_sql.define_column(cdyn, 1, nCountRemote);
921: rdyn := dbms_sql.execute_and_fetch(cdyn);
922: dbms_sql.column_value(cdyn, 1, nCountRemote);
923: dbms_sql.close_cursor(cdyn);
916:
917: begin
918: cdyn := dbms_sql.open_cursor;
919: dbms_sql.parse(cdyn,'select count(*) from '||inTableName||'@'||dbLinkName,dbms_sql.native);
920: dbms_sql.define_column(cdyn, 1, nCountRemote);
921: rdyn := dbms_sql.execute_and_fetch(cdyn);
922: dbms_sql.column_value(cdyn, 1, nCountRemote);
923: dbms_sql.close_cursor(cdyn);
924: exception
917: begin
918: cdyn := dbms_sql.open_cursor;
919: dbms_sql.parse(cdyn,'select count(*) from '||inTableName||'@'||dbLinkName,dbms_sql.native);
920: dbms_sql.define_column(cdyn, 1, nCountRemote);
921: rdyn := dbms_sql.execute_and_fetch(cdyn);
922: dbms_sql.column_value(cdyn, 1, nCountRemote);
923: dbms_sql.close_cursor(cdyn);
924: exception
925: when others then
918: cdyn := dbms_sql.open_cursor;
919: dbms_sql.parse(cdyn,'select count(*) from '||inTableName||'@'||dbLinkName,dbms_sql.native);
920: dbms_sql.define_column(cdyn, 1, nCountRemote);
921: rdyn := dbms_sql.execute_and_fetch(cdyn);
922: dbms_sql.column_value(cdyn, 1, nCountRemote);
923: dbms_sql.close_cursor(cdyn);
924: exception
925: when others then
926: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
919: dbms_sql.parse(cdyn,'select count(*) from '||inTableName||'@'||dbLinkName,dbms_sql.native);
920: dbms_sql.define_column(cdyn, 1, nCountRemote);
921: rdyn := dbms_sql.execute_and_fetch(cdyn);
922: dbms_sql.column_value(cdyn, 1, nCountRemote);
923: dbms_sql.close_cursor(cdyn);
924: exception
925: when others then
926: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
927: --'Verification of the table ''%TABLENAME'' in the source schema failed: %ERRORTEXT.'
922: dbms_sql.column_value(cdyn, 1, nCountRemote);
923: dbms_sql.close_cursor(cdyn);
924: exception
925: when others then
926: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
927: --'Verification of the table ''%TABLENAME'' in the source schema failed: %ERRORTEXT.'
928: report(CZ_UTILS.GET_TEXT('CZ_MIGR_SOURCE_TABLE', 'TABLENAME', inTableName, 'ERRORTEXT', SQLERRM), URGENCY_WARNING);
929: return SKIPPABLE_ERROR;
930: end;
1118: tableUpdateStatement := tableUpdateStatement||PkColumnNames(PkColumnNames.last)||'=c_row.'||PkColumnNames(PkColumnNames.last)||'; ';
1119: end if;
1120: end if;
1121:
1122: cdyn := dbms_sql.open_cursor;
1123: dbms_sql.parse(cdyn,
1124: 'declare '||
1125: ' nUpdates number := 0; '||
1126: ' nInserts number := 0; '||
1119: end if;
1120: end if;
1121:
1122: cdyn := dbms_sql.open_cursor;
1123: dbms_sql.parse(cdyn,
1124: 'declare '||
1125: ' nUpdates number := 0; '||
1126: ' nInserts number := 0; '||
1127: ' nCommitCount pls_integer:=0; '||
1167: ' end loop; '||
1168: ' commit; '||
1169: ' cz_migrate.report(CZ_UTILS.GET_TEXT(''CZ_MIGR_COPY_SUCCESS'', ''TABLENAME'', ''' || inTableName || ''', ''INSERTROWS'', TO_CHAR(nInserts), ''UPDATEROWS'', TO_CHAR(nUpdates)), cz_migrate.URGENCY_MESSAGE); ' ||
1170: 'end;',
1171: dbms_sql.native);
1172:
1173: dbms_sql.bind_variable(cdyn, ':Refreshable', inRefreshable);
1174: dbms_sql.bind_variable(cdyn, ':StopOnSkippable', inStopOnSkippable);
1175: dbms_sql.bind_variable(cdyn, ':CommitSize', inCommitSize);
1169: ' cz_migrate.report(CZ_UTILS.GET_TEXT(''CZ_MIGR_COPY_SUCCESS'', ''TABLENAME'', ''' || inTableName || ''', ''INSERTROWS'', TO_CHAR(nInserts), ''UPDATEROWS'', TO_CHAR(nUpdates)), cz_migrate.URGENCY_MESSAGE); ' ||
1170: 'end;',
1171: dbms_sql.native);
1172:
1173: dbms_sql.bind_variable(cdyn, ':Refreshable', inRefreshable);
1174: dbms_sql.bind_variable(cdyn, ':StopOnSkippable', inStopOnSkippable);
1175: dbms_sql.bind_variable(cdyn, ':CommitSize', inCommitSize);
1176: rdyn := dbms_sql.execute(cdyn);
1177: dbms_sql.close_cursor(cdyn);
1170: 'end;',
1171: dbms_sql.native);
1172:
1173: dbms_sql.bind_variable(cdyn, ':Refreshable', inRefreshable);
1174: dbms_sql.bind_variable(cdyn, ':StopOnSkippable', inStopOnSkippable);
1175: dbms_sql.bind_variable(cdyn, ':CommitSize', inCommitSize);
1176: rdyn := dbms_sql.execute(cdyn);
1177: dbms_sql.close_cursor(cdyn);
1178: commit;
1171: dbms_sql.native);
1172:
1173: dbms_sql.bind_variable(cdyn, ':Refreshable', inRefreshable);
1174: dbms_sql.bind_variable(cdyn, ':StopOnSkippable', inStopOnSkippable);
1175: dbms_sql.bind_variable(cdyn, ':CommitSize', inCommitSize);
1176: rdyn := dbms_sql.execute(cdyn);
1177: dbms_sql.close_cursor(cdyn);
1178: commit;
1179: return NO_ERROR;
1172:
1173: dbms_sql.bind_variable(cdyn, ':Refreshable', inRefreshable);
1174: dbms_sql.bind_variable(cdyn, ':StopOnSkippable', inStopOnSkippable);
1175: dbms_sql.bind_variable(cdyn, ':CommitSize', inCommitSize);
1176: rdyn := dbms_sql.execute(cdyn);
1177: dbms_sql.close_cursor(cdyn);
1178: commit;
1179: return NO_ERROR;
1180:
1173: dbms_sql.bind_variable(cdyn, ':Refreshable', inRefreshable);
1174: dbms_sql.bind_variable(cdyn, ':StopOnSkippable', inStopOnSkippable);
1175: dbms_sql.bind_variable(cdyn, ':CommitSize', inCommitSize);
1176: rdyn := dbms_sql.execute(cdyn);
1177: dbms_sql.close_cursor(cdyn);
1178: commit;
1179: return NO_ERROR;
1180:
1181: exception
1179: return NO_ERROR;
1180:
1181: exception
1182: when CZ_MIGR_SKIPPABLE_EXCEPTION then
1183: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1184: return SKIPPABLE_ERROR;
1185: when CZ_MIGR_FATAL_EXCEPTION then
1186: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1187: return FATAL_ERROR;
1182: when CZ_MIGR_SKIPPABLE_EXCEPTION then
1183: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1184: return SKIPPABLE_ERROR;
1185: when CZ_MIGR_FATAL_EXCEPTION then
1186: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1187: return FATAL_ERROR;
1188: when OTHERS then
1189: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1190: --'Unable to copy the table ''%TABLENAME'' in the selected mode: %ERRORTEXT.'
1185: when CZ_MIGR_FATAL_EXCEPTION then
1186: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1187: return FATAL_ERROR;
1188: when OTHERS then
1189: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1190: --'Unable to copy the table ''%TABLENAME'' in the selected mode: %ERRORTEXT.'
1191: report(CZ_UTILS.GET_TEXT('CZ_MIGR_COPY_ERROR', 'TABLENAME', inTableName, 'ERRORTEXT', SQLERRM), URGENCY_ERROR);
1192: return FATAL_ERROR;
1193: end;
1216: tableInsertStatement := ' insert /*+ APPEND */ into '||inTableName||' ('||
1217: tableInsertStatement||') select '||tableInsertStatement||' from '||
1218: inTableName||'@'||dbLinkName;
1219:
1220: cdyn := dbms_sql.open_cursor;
1221: dbms_sql.parse(cdyn,tableInsertStatement,dbms_sql.native);
1222: rdyn := dbms_sql.execute(cdyn);
1223: dbms_sql.close_cursor(cdyn);
1224: commit;
1217: tableInsertStatement||') select '||tableInsertStatement||' from '||
1218: inTableName||'@'||dbLinkName;
1219:
1220: cdyn := dbms_sql.open_cursor;
1221: dbms_sql.parse(cdyn,tableInsertStatement,dbms_sql.native);
1222: rdyn := dbms_sql.execute(cdyn);
1223: dbms_sql.close_cursor(cdyn);
1224: commit;
1225:
1218: inTableName||'@'||dbLinkName;
1219:
1220: cdyn := dbms_sql.open_cursor;
1221: dbms_sql.parse(cdyn,tableInsertStatement,dbms_sql.native);
1222: rdyn := dbms_sql.execute(cdyn);
1223: dbms_sql.close_cursor(cdyn);
1224: commit;
1225:
1226: --'Source records are successfully inserted into the target table ''%TABLENAME''.'
1219:
1220: cdyn := dbms_sql.open_cursor;
1221: dbms_sql.parse(cdyn,tableInsertStatement,dbms_sql.native);
1222: rdyn := dbms_sql.execute(cdyn);
1223: dbms_sql.close_cursor(cdyn);
1224: commit;
1225:
1226: --'Source records are successfully inserted into the target table ''%TABLENAME''.'
1227: report(CZ_UTILS.GET_TEXT('CZ_MIGR_FAST_INSERTED', 'TABLENAME', inTableName), URGENCY_MESSAGE);
1228: return NO_ERROR;
1229:
1230: exception
1231: when OTHERS then
1232: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1233: --'Unable to copy the table ''%TABLENAME'' in the selected mode: %ERRORTEXT.'
1234: report(CZ_UTILS.GET_TEXT('CZ_MIGR_COPY_ERROR', 'TABLENAME', inTableName, 'ERRORTEXT', SQLERRM), URGENCY_WARNING);
1235: if((sqlcode between -999 and -900) or (sqlcode between -1489 and -1400) or sqlcode = -1)then
1236: return SKIPPABLE_ERROR;
1278: ' remote where not exists (select null from '||
1279: inTableName||' where '||PkString||')';
1280: end if;
1281:
1282: cdyn := dbms_sql.open_cursor;
1283: dbms_sql.parse(cdyn,tableInsertStatement,dbms_sql.native);
1284: rdyn := dbms_sql.execute(cdyn);
1285: dbms_sql.close_cursor(cdyn);
1286: commit;
1279: inTableName||' where '||PkString||')';
1280: end if;
1281:
1282: cdyn := dbms_sql.open_cursor;
1283: dbms_sql.parse(cdyn,tableInsertStatement,dbms_sql.native);
1284: rdyn := dbms_sql.execute(cdyn);
1285: dbms_sql.close_cursor(cdyn);
1286: commit;
1287:
1280: end if;
1281:
1282: cdyn := dbms_sql.open_cursor;
1283: dbms_sql.parse(cdyn,tableInsertStatement,dbms_sql.native);
1284: rdyn := dbms_sql.execute(cdyn);
1285: dbms_sql.close_cursor(cdyn);
1286: commit;
1287:
1288: --'%INSERTROWS records successfully inserted into the target table ''%TABLENAME''.'
1281:
1282: cdyn := dbms_sql.open_cursor;
1283: dbms_sql.parse(cdyn,tableInsertStatement,dbms_sql.native);
1284: rdyn := dbms_sql.execute(cdyn);
1285: dbms_sql.close_cursor(cdyn);
1286: commit;
1287:
1288: --'%INSERTROWS records successfully inserted into the target table ''%TABLENAME''.'
1289: report(CZ_UTILS.GET_TEXT('CZ_MIGR_INSERT_SUCCESS', 'TABLENAME', inTableName, 'INSERTROWS', TO_CHAR(rdyn)), URGENCY_MESSAGE);
1290: return NO_ERROR;
1291:
1292: exception
1293: when OTHERS then
1294: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1295: --'Unable to copy the table ''%TABLENAME'' in the selected mode: %ERRORTEXT.'
1296: report(CZ_UTILS.GET_TEXT('CZ_MIGR_COPY_ERROR', 'TABLENAME', inTableName, 'ERRORTEXT', SQLERRM), URGENCY_WARNING);
1297: if((sqlcode between -999 and -900) or (sqlcode between -1489 and -1400) or sqlcode = -1)then
1298: return SKIPPABLE_ERROR;
1307: cdyn integer;
1308: rdyn integer;
1309: begin
1310:
1311: cdyn := dbms_sql.open_cursor;
1312: dbms_sql.parse(cdyn, 'TRUNCATE TABLE ' || CONFIGURATOR_SCHEMA || '.' || inTableName, dbms_sql.native);
1313: rdyn := dbms_sql.execute(cdyn);
1314: dbms_sql.close_cursor(cdyn);
1315: commit;
1308: rdyn integer;
1309: begin
1310:
1311: cdyn := dbms_sql.open_cursor;
1312: dbms_sql.parse(cdyn, 'TRUNCATE TABLE ' || CONFIGURATOR_SCHEMA || '.' || inTableName, dbms_sql.native);
1313: rdyn := dbms_sql.execute(cdyn);
1314: dbms_sql.close_cursor(cdyn);
1315: commit;
1316:
1309: begin
1310:
1311: cdyn := dbms_sql.open_cursor;
1312: dbms_sql.parse(cdyn, 'TRUNCATE TABLE ' || CONFIGURATOR_SCHEMA || '.' || inTableName, dbms_sql.native);
1313: rdyn := dbms_sql.execute(cdyn);
1314: dbms_sql.close_cursor(cdyn);
1315: commit;
1316:
1317: return copy_table_fastmode(inTableName, inStopOnSkippable);
1310:
1311: cdyn := dbms_sql.open_cursor;
1312: dbms_sql.parse(cdyn, 'TRUNCATE TABLE ' || CONFIGURATOR_SCHEMA || '.' || inTableName, dbms_sql.native);
1313: rdyn := dbms_sql.execute(cdyn);
1314: dbms_sql.close_cursor(cdyn);
1315: commit;
1316:
1317: return copy_table_fastmode(inTableName, inStopOnSkippable);
1318:
1317: return copy_table_fastmode(inTableName, inStopOnSkippable);
1318:
1319: exception
1320: when OTHERS then
1321: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1322: --'Unable to copy the table ''%TABLENAME'' in the selected mode: %ERRORTEXT.'
1323: report(CZ_UTILS.GET_TEXT('CZ_MIGR_COPY_ERROR', 'TABLENAME', inTableName, 'ERRORTEXT', SQLERRM), URGENCY_WARNING);
1324: if((sqlcode between -999 and -900) or (sqlcode between -1489 and -1400) or sqlcode = -1)then
1325: return SKIPPABLE_ERROR;
1334: rdyn integer;
1335: begin
1336: for c_triggers in (select dst_table from cz_xfr_tables where xfr_group='TRIGGERS' and disabled='0') loop
1337: begin
1338: cdyn := dbms_sql.open_cursor;
1339: dbms_sql.parse(cdyn,'alter trigger '||c_triggers.dst_table||' disable',dbms_sql.native);
1340: rdyn := dbms_sql.execute(cdyn);
1341: dbms_sql.close_cursor(cdyn);
1342: exception
1335: begin
1336: for c_triggers in (select dst_table from cz_xfr_tables where xfr_group='TRIGGERS' and disabled='0') loop
1337: begin
1338: cdyn := dbms_sql.open_cursor;
1339: dbms_sql.parse(cdyn,'alter trigger '||c_triggers.dst_table||' disable',dbms_sql.native);
1340: rdyn := dbms_sql.execute(cdyn);
1341: dbms_sql.close_cursor(cdyn);
1342: exception
1343: when others then
1336: for c_triggers in (select dst_table from cz_xfr_tables where xfr_group='TRIGGERS' and disabled='0') loop
1337: begin
1338: cdyn := dbms_sql.open_cursor;
1339: dbms_sql.parse(cdyn,'alter trigger '||c_triggers.dst_table||' disable',dbms_sql.native);
1340: rdyn := dbms_sql.execute(cdyn);
1341: dbms_sql.close_cursor(cdyn);
1342: exception
1343: when others then
1344: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1337: begin
1338: cdyn := dbms_sql.open_cursor;
1339: dbms_sql.parse(cdyn,'alter trigger '||c_triggers.dst_table||' disable',dbms_sql.native);
1340: rdyn := dbms_sql.execute(cdyn);
1341: dbms_sql.close_cursor(cdyn);
1342: exception
1343: when others then
1344: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1345: --'Error while disabling triggers: %ERRORTEXT.'
1340: rdyn := dbms_sql.execute(cdyn);
1341: dbms_sql.close_cursor(cdyn);
1342: exception
1343: when others then
1344: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1345: --'Error while disabling triggers: %ERRORTEXT.'
1346: report(CZ_UTILS.GET_TEXT('CZ_MIGR_TRIGGERS_ERROR', 'ERRORTEXT', SQLERRM), URGENCY_WARNING);
1347: if(inStopOnSkippable = 1)then return SKIPPABLE_ERROR; end if;
1348: end;
1356: rdyn integer;
1357: begin
1358: for c_triggers in (select dst_table from cz_xfr_tables where xfr_group='TRIGGERS' and disabled='0') loop
1359: begin
1360: cdyn := dbms_sql.open_cursor;
1361: dbms_sql.parse(cdyn,'alter trigger '||c_triggers.dst_table||' enable',dbms_sql.native);
1362: rdyn := dbms_sql.execute(cdyn);
1363: dbms_sql.close_cursor(cdyn);
1364: exception
1357: begin
1358: for c_triggers in (select dst_table from cz_xfr_tables where xfr_group='TRIGGERS' and disabled='0') loop
1359: begin
1360: cdyn := dbms_sql.open_cursor;
1361: dbms_sql.parse(cdyn,'alter trigger '||c_triggers.dst_table||' enable',dbms_sql.native);
1362: rdyn := dbms_sql.execute(cdyn);
1363: dbms_sql.close_cursor(cdyn);
1364: exception
1365: when others then
1358: for c_triggers in (select dst_table from cz_xfr_tables where xfr_group='TRIGGERS' and disabled='0') loop
1359: begin
1360: cdyn := dbms_sql.open_cursor;
1361: dbms_sql.parse(cdyn,'alter trigger '||c_triggers.dst_table||' enable',dbms_sql.native);
1362: rdyn := dbms_sql.execute(cdyn);
1363: dbms_sql.close_cursor(cdyn);
1364: exception
1365: when others then
1366: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1359: begin
1360: cdyn := dbms_sql.open_cursor;
1361: dbms_sql.parse(cdyn,'alter trigger '||c_triggers.dst_table||' enable',dbms_sql.native);
1362: rdyn := dbms_sql.execute(cdyn);
1363: dbms_sql.close_cursor(cdyn);
1364: exception
1365: when others then
1366: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1367: --'Error while enabling triggers: %ERRORTEXT.'
1362: rdyn := dbms_sql.execute(cdyn);
1363: dbms_sql.close_cursor(cdyn);
1364: exception
1365: when others then
1366: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1367: --'Error while enabling triggers: %ERRORTEXT.'
1368: report(CZ_UTILS.GET_TEXT('CZ_MIGR_ENABLE_ERROR', 'ERRORTEXT', SQLERRM), URGENCY_WARNING);
1369: if(inStopOnSkippable = 1)then return SKIPPABLE_ERROR; end if;
1370: end;
1383:
1384: IF(p_increment < 0)THEN Operator := 'MIN'; END IF;
1385:
1386: begin
1387: cdyn := dbms_sql.open_cursor;
1388: dbms_sql.parse(cdyn,'SELECT ' || Operator || '(' || inPkName || ') FROM ' || tableName, dbms_sql.native);
1389: dbms_sql.define_column(cdyn, 1, nMaximum);
1390: rdyn := dbms_sql.execute_and_fetch(cdyn);
1391: dbms_sql.column_value(cdyn, 1, nMaximum);
1384: IF(p_increment < 0)THEN Operator := 'MIN'; END IF;
1385:
1386: begin
1387: cdyn := dbms_sql.open_cursor;
1388: dbms_sql.parse(cdyn,'SELECT ' || Operator || '(' || inPkName || ') FROM ' || tableName, dbms_sql.native);
1389: dbms_sql.define_column(cdyn, 1, nMaximum);
1390: rdyn := dbms_sql.execute_and_fetch(cdyn);
1391: dbms_sql.column_value(cdyn, 1, nMaximum);
1392: dbms_sql.close_cursor(cdyn);
1385:
1386: begin
1387: cdyn := dbms_sql.open_cursor;
1388: dbms_sql.parse(cdyn,'SELECT ' || Operator || '(' || inPkName || ') FROM ' || tableName, dbms_sql.native);
1389: dbms_sql.define_column(cdyn, 1, nMaximum);
1390: rdyn := dbms_sql.execute_and_fetch(cdyn);
1391: dbms_sql.column_value(cdyn, 1, nMaximum);
1392: dbms_sql.close_cursor(cdyn);
1393: exception
1386: begin
1387: cdyn := dbms_sql.open_cursor;
1388: dbms_sql.parse(cdyn,'SELECT ' || Operator || '(' || inPkName || ') FROM ' || tableName, dbms_sql.native);
1389: dbms_sql.define_column(cdyn, 1, nMaximum);
1390: rdyn := dbms_sql.execute_and_fetch(cdyn);
1391: dbms_sql.column_value(cdyn, 1, nMaximum);
1392: dbms_sql.close_cursor(cdyn);
1393: exception
1394: when others then
1387: cdyn := dbms_sql.open_cursor;
1388: dbms_sql.parse(cdyn,'SELECT ' || Operator || '(' || inPkName || ') FROM ' || tableName, dbms_sql.native);
1389: dbms_sql.define_column(cdyn, 1, nMaximum);
1390: rdyn := dbms_sql.execute_and_fetch(cdyn);
1391: dbms_sql.column_value(cdyn, 1, nMaximum);
1392: dbms_sql.close_cursor(cdyn);
1393: exception
1394: when others then
1395: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1388: dbms_sql.parse(cdyn,'SELECT ' || Operator || '(' || inPkName || ') FROM ' || tableName, dbms_sql.native);
1389: dbms_sql.define_column(cdyn, 1, nMaximum);
1390: rdyn := dbms_sql.execute_and_fetch(cdyn);
1391: dbms_sql.column_value(cdyn, 1, nMaximum);
1392: dbms_sql.close_cursor(cdyn);
1393: exception
1394: when others then
1395: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1396: --'Skipping sequence ''%SEQUENCENAME'', unable to retrieve the last primary key value: %ERRORTEXT.'
1391: dbms_sql.column_value(cdyn, 1, nMaximum);
1392: dbms_sql.close_cursor(cdyn);
1393: exception
1394: when others then
1395: if(dbms_sql.is_open(cdyn))then dbms_sql.close_cursor(cdyn); end if;
1396: --'Skipping sequence ''%SEQUENCENAME'', unable to retrieve the last primary key value: %ERRORTEXT.'
1397: report(CZ_UTILS.GET_TEXT('CZ_MIGR_SEQUENCE_MAX', 'SEQUENCENAME', sequenceName, 'ERRORTEXT', SQLERRM), URGENCY_WARNING);
1398: return SKIPPABLE_ERROR;
1399: end;