代码之家  ›  专栏  ›  技术社区  ›  James L

Oracle:在批处理中调用多个过程

  •  1
  • James L  · 技术社区  · 17 年前

    我需要在一个事务中依次调用Oracle包中的许多不同过程。事实上,我需要给他们打5000次电话。我想知道我可以使用什么语法来批处理这些对Oracle的调用,所以我只需要一次往返。我试过了

    PACKAGE.PROCA :1, :2; PACKAGE.PROCB :3, :4, :5;
    

    有什么建议吗?我知道如何将参数数组传递给过程,但不幸的是,在这种情况下,这不会有多大帮助。

    2 回复  |  直到 12 年前
        1
  •  2
  •   Gary Myers    17 年前

    最简单的是匿名PL/SQL块。如:

    DECLARE
      v_file_loc varchar2(100) := '....';
      v_file_name varchar2(100) := '....';
      v_text varchar2(4000);
    BEGIN
        dbms_output.put_line('Starting file read');
        fp := UTL_FILE.FOPEN(v_file_loc,v_file_name,'r');
        LOOP
            utl_file.GET_LINE(fp,v_text);
            dbms_output.put_line(v_text);
        END LOOP;
        UTL_FILE.FCLOSE(fp);
    END;
    /
    

    然后,您可以执行额外的步骤,在DB中实际创建一个过程,并简单地调用该过程。 最后的斜杠告诉SQL*Plus或SQL Developer执行代码。这取决于您正在使用什么来运行SQL。

        2
  •  0
  •   duffymo    17 年前