在 pl sql 中读取包过程中的文件

Read a file inside a package procedure in pl sql

我正在尝试读取 Pl Sql 过程中的文本文件,但无济于事 -- 似乎有语法错误。我究竟做错了什么?我怀疑我没有在我应该去的地方宣布一些事情。这是包体的第一个路径:

CREATE OR REPLACE PACKAGE BODY COP_DBO.PACKAGE_TEMPLATE

 AS
  --
  --*****************************************************************************************************
  -- Purpose: Just a template
  --
  -- Inputs:
  --      in_vSTR    String
  --
  -- Returns:
  --      None
  --
  -- Mod History:
  --      06/29/2016 KEvin Palmer - Created initial version of this procedure
  --
  -- Error Handling:
  --      An error is raised if errors are encountered building or executing the SQL.
  --
  --*****************************************************************************************************
f UTL_FILE.FILE_TYPE;
s VACHAR2(200);
BEGIN
f := UTL_FILE.FOPEN('\sp0034avrt\winixdb$\cow\dev', 'certs_file.txt', 'R');

UTL_FILE.GET_LINE(f,s);

UTL_FILE.FLCOSE(f);

dbms_outpit.put_line(s);
end;




  sql_statments arr_sql_t := arr_sql_t(); --initialize a empty lis 
  --------------------------------------------------------------------------------
  /*                    PROCEDURE AND VARIABLE 
                        INITILIZATION FOR  COW_DATALOAD_V2
  /***************************************************************************/
  ------------------------------------------------------------------------------
  --*********** PUT YOUR LIST OF CERTS BELOW ******************

  v_certList arr_claims_t := arr_claims_t('3803617642',
                                          '3805126441',
                                          '3876849047',
                                          '3873116383',
                                          '3873306670',
                                          '3878876718');

  --COP VARIABLES---
  new_copId   NUMBER; --NEW COP ID 
  prod_copId  NUMBER; --PROD COP ID
  new_seq_id  NUMBER; --NEW SEQ ID  
  suppl_count NUMBER; --supplemental count

  v_SQL     VARCHAR2(7000);
  v_certLst VARCHAR2(2000);
  n_success NUMBER := 0; --Count of success found
  n_total   NUMBER := 0; --Total Records proccessed
  n_suppl   NUMBER := 0; --Total Records proccessed
  n_orders  NUMBER := 0; --Total lmso orders downloaded

  /*cop procedure*/
  PROCEDURE COP_DATALOAD_V2(arr_claims arr_claims_t,
                            arr_sql    arr_sql_t) AS
  BEGIN

之后开始我有两个程序。文件内容结束后的所有内容都以某种类型的语法错误突出显示。我做错了什么?

编辑:这个问题如何与其他问题重复?我没看到。对不起,如果它很明显。我根本看不出相似之处。

典型的包体声明如下所示

create or replace package body package_name is

  var_name number;

  procedure proc_name is
  begin
    do_smth;
  end;

begin
   init_smth;
end ;

变量、方法、初始化。在您的代码中相反:

create or replace package body package_name is

  var_name number;

begin
   init_smth;
end ;

  var_name2 number;

  procedure proc_name is
  begin
...

变量,初始化,再次变量,方法。看起来你应该把代码放在正确的地方