首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迁移oracle到Postgresql UTL_FILE异常

迁移oracle到Postgresql UTL_FILE异常
EN

Stack Overflow用户
提问于 2017-07-06 00:46:27
回答 1查看 529关注 0票数 0

我的情况和这篇文章中描述的一样:Porting Oracle procedure to PostgreSQL (exception codes from orafce for utl_file module)

我正在使用ora2pg从oracle迁移到postgres,并且我正在尝试纠正'utl_file‘的异常处理的语法。有人在另一篇文章中评论了一个解决方案,但我不知道如何正确地应用它。

我有下面的代码:

代码语言:javascript
复制
   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“或其附近出现语法错误。

请帮帮我。

EN

回答 1

Stack Overflow用户

发布于 2017-07-06 02:18:55

我编写PL/SQL已经有很长一段时间了,我从来没有遇到过执行命令。如果这段代码要在Oracle实例上运行,那么我只需删除两个"PERFORM“字符串。

如果这是在POSTGRES实例上运行的,那么我不希望UTL_FILE存在。如果它确实存在,那么运行该代码的用户可能没有被授予执行UTL_FILE的权限。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44931869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档