我的情况和这篇文章中描述的一样:Porting Oracle procedure to PostgreSQL (exception codes from orafce for utl_file module)
我正在使用ora2pg从oracle迁移到postgres,并且我正在尝试纠正'utl_file‘的异常处理的语法。有人在另一篇文章中评论了一个解决方案,但我不知道如何正确地应用它。
我有下面的代码:
V_Step := 1;
FOR Rec_Report IN C_Report LOOP
V_Counter := V_Counter + 1;
-- Header
IF V_Counter = 1 THEN
-- Open File
V_File_Type := UTL_FILE.FOPEN(V_Dir_Name, V_File_Name,'w');
V_Step := 2;
bl_create_flat_file_pg.open_html(V_File_Type);
.......
.......
.......
V_Step :=10
EXCEPTION
when UTL_FILE.INVALID_PATH then
PERFORM control_reports_pg.send_error_mail('invalid_path
V_Step'||V_Step,C_Function_Name);
PERFORM UTL_FILE.FCLOSE(V_File_Type);
when UTL_FILE.INVALID_MODE then
PERFORM control_reports_pg.send_error_mail('INVALID_MODE
V_Step'||V_Step,C_Function_Name);
PERFORM UTL_FILE.FCLOSE(V_File_Type);因此,对于每一步,我都有一段这样的代码来处理异常。我得到一个语法错误: ERROR:在"UTL_FILE“或其附近出现语法错误。
请帮帮我。
发布于 2017-07-06 02:18:55
我编写PL/SQL已经有很长一段时间了,我从来没有遇到过执行命令。如果这段代码要在Oracle实例上运行,那么我只需删除两个"PERFORM“字符串。
如果这是在POSTGRES实例上运行的,那么我不希望UTL_FILE存在。如果它确实存在,那么运行该代码的用户可能没有被授予执行UTL_FILE的权限。
https://stackoverflow.com/questions/44931869
复制相似问题