plsql读取数组中的文本文件

时间:2016-07-21 14:02:30

标签: sql oracle plsql oracle11g

当我运行代码中的这部分代码时,我得到一个错误(特别是在l_cnt := 1_cnt + 1行由于某种原因而代码崩溃。我可能做错了什么?我正在尝试阅读证书文件。这是我到目前为止所拥有的:

v_certList arr_claims_t := arr_claims_t();                                  


  v_certLst VARCHAR2(2000); 

  f UTL_FILE.FILE_TYPE;
  s VARCHAR2(200);


-- used for looping
l_cnt simple_integer := 0;

  /*cop procedure*/
  PROCEDURE COP_DATALOAD_V2 AS
    arr_claims arr_claims_t;
    arr_sql    arr_sql_t;
  BEGIN

    f := UTL_FILE.FOPEN('V_COP',
                        'certs_file.txt',
                        'R',
                        2500);

    -- populata our v_certlist of arr_claims_t

       loop
         utl_file.get_line(f, s);
         v_certList.extend();
         l_cnt := l_cnt+1;
         v_certList(l_cnt) := s;
     end loop;
    exception
     when no_data_found then
        utl_file.fclose(f);

我希望在给定文本文件的情况下成功填充数组(我知道这不是最佳实践,但这是我现在必须要做的)

1 个答案:

答案 0 :(得分:0)

我想出了错误!它正在读取的s对于阵列来说太大了。这是因为文件中包含空格。

v_certList.extend(1);
      l_cnt := l_cnt + 1;
      v_certList(l_cnt) := substr(s,
                                  0,
                                  10)

这为我修好了。