postgresql.org/docs/9.6/static/plpgsql-errors-and-messages.html
ожусь в процессе миграции базы данных из Oracle в PostgreSQL. Мы используемora2pg сделать преобразование плюсом автоматическим иorafce плагин для PostgreSQL для совместимости функций.
Мы только начали, и предстоит большая работа.
Просто сейчас я с хранимыми процедурами (вывод из скрипта ora2pg) и после устранения различных синтаксических ошибок я не знаю, как решить последнюю.
В частности, проблемный код выглядит следующим образом:
select utl_file.put_line(vIdLog,'******************************** COMPTE RENDU PURGE_DOUBLONS_FS **************************');
select utl_file.put_line(vIdLog,'* - Debut du traitement le : '||vDateDebut);
select utl_file.put_line(vIdLog,'*');
select utl_file.put_line(vIdLog,'* - Nb de lun appairées à plusieurs ZV : ' || vNbLunMultiZV);
select utl_file.put_line(vIdLog,'* - Nb FS appairée à plusieurs ZV : ' || vNbUpdateFsMultiZV);
select utl_file.put_line(vIdLog,'* - Nb Liens Lun/FS en suppression logique : ' || vNbUpdateLunMultiZV);
select utl_file.put_line(vIdLog,'* - Nb Liens FS en suppression logique : ' || vNbUpdateFsMultiZV);
select utl_file.put_line(vIdLog,'* - Nb Liens FS(ZG mono ZV)en suppression logique : ' || vNbUpdateLunFSZVseule);
select utl_file.put_line(vIdLog,'* - Nb Liens FS(ZG mono ZV)en suppression logique 2 : ' || vNbUpdateLunFSZVseule2);
select utl_file.put_line(vIdLog,'* - Nb Liens LUN/FS ZV obsolètes : ' || vNbOldLunZV);
select utl_file.put_line(vIdLog,'* - Nb Liens LUN/FS ZG obsolètes : ' || vNbOldLunZG);
select utl_file.put_line(vIdLog,'* - Temps de traitement de calcul : ' || OUTILS.time_to_char(tTotal));
select utl_file.put_line(vIdLog,'*');
select utl_file.put_line(vIdLog,'* - Fin du calcul HOST_LUN le : ' || to_char(clock_timestamp(), 'DD/MM/YYYY HH24:MI:SS'));
select utl_file.put_line(vIdLog,'************************** FIN COMPTE RENDU PURGE_DOUBLONS_FS ****************************');
select utl_file.fclose(vIdLog);
EXCEPTION
when UTL_FILE.INVALID_PATH then
select Fin_traitement_fichier('Erreur E/S');
RAISE EXCEPTION '%', 'File location or filename was invalid.';
when UTL_FILE.INVALID_MODE then
select Fin_traitement_fichier('Erreur E/S');
RAISE EXCEPTION '%', 'The open_mode parameter in FOPEN was invalid.';
when others then
select Fin_traitement_fichier(SQLERRM);
RAISE NOTICE 'ERR005 : ERREUR TRAITEMENT PURGE_DOUBLONS_FS : %', SQLERRM;
IF cFs%ISOPEN THEN
CLOSE cFs;
END IF;
Произошла ошибка в следующем
ERROR: syntax error at or near "UTL_FILE"
LINE 341: RAISE EXCEPTION '%', 'File location or filename was inval...
^
********** Error **********
Если я использую только"когда другие" часть обработки исключений работает нормально, поэтому проблема исходит от константUTL_FILE.INVALID_PATH а такжеUTL_FILE.INVALID_MODE которые не распознаются PostgreSQL.
Есть идеи, как обрабатывать коды исключений из orafce для модуля utl_file?