V_FILE := UTL_FILE.FOPEN(inRCV_PATH,  -- ƒtƒ@ƒCƒ‹‚̃fƒBƒŒƒNƒgƒŠ
                               inRCV_FILE_NM, -- ƒtƒ@ƒCƒ‹–¼i–¼‘O‚ÆŠg’£Žq‚̂݁j
                               'R',        -- “Ǎž‚݃‚[ƒh
                               32767
                               );
      BEGIN
        LOOP
          UTL_FILE.GET_LINE(V_FILE, V_LINE); -- 1s“Ǎž‚Ý
          V_ARR_FIELD := TO_FIELD(V_LINE);
          
          IF CheckData(V_ARR_FIELD, V_STRERR_NO, V_STRERR_MSG) = TRUE THEN -- ƒf[ƒ^‚̃`ƒFƒbƒN‚ðs‚¤
            
            -- ƒ`ƒFƒbƒNOK‚̏ꍇ“o˜^ˆ—‚ðs‚È‚¤
            SetT_SYUKA(V_ARR_FIELD, V_SYUKAROW, retCd(V_intX), retChar(V_intX));            
            
            IF retCd(V_intX) = 1 THEN
              UTL_FILE.FCLOSE(V_FILE);     -- ƒtƒ@ƒCƒ‹‚ð•Â‚¶‚é
              RETURN;
            END IF;
            
            -- o‰×ŠÖ˜Aî•ñ‚Ì“o˜^
            InsertT_SYUKA(V_SYUKAROW, inRCV_BAT_NO,  inRCV_YMD ,inUSER_ID, inTNMT_ID, retSqlCode(V_intX), retSqlErrm(V_intX), retCd(V_intX), retChar(V_intX));
            
            IF retCd(V_intX) = 1 THEN
              UTL_FILE.FCLOSE(V_FILE);     -- ƒtƒ@ƒCƒ‹‚ð•Â‚¶‚é
              RETURN;
            END IF;
            
            
          ELSE 
            IF V_STRERR_NO = '101' THEN
              V_STRERR_MSG := V_STRERR_MSG || '”’lƒGƒ‰[';
            ELSIF V_STRERR_NO = '102' THEN
              V_STRERR_MSG := V_STRERR_MSG || '“ú•tƒGƒ‰[';
            ELSIF V_STRERR_NO = '103' THEN
              V_STRERR_MSG := V_STRERR_MSG || 'NULLƒGƒ‰[';
            END IF;
            
            retCD(V_intX)   := 1;
            retCHAR(V_intX) := V_STRERR_MSG;
            
            
            UTL_FILE.FCLOSE(V_FILE);     -- ƒtƒ@ƒCƒ‹‚ð•Â‚¶‚é
            
            RETURN;
          END IF;
        END LOOP;

解决方案 »

  1.   

    V_FILE := UTL_FILE.FOPEN(inRCV_PATH, inRCV_FILE_NM,'R', 32767); 
            LOOP
              UTL_FILE.GET_LINE(V_FILE, V_LINE); 
              V_ARR_FIELD := TO_FIELD(V_LINE);                       
                UTL_FILE.FCLOSE(V_FILE);     
              END IF;
            END LOOP;
    V_FILE 自己定义的变量
    inRCV_PATH 文件的路径
    inRCV_FILE_NM 文件的名称
    'R'  读模式
    32767 处理的长度UTL_FILE.GET_LINE(V_FILE, V_LINE); 循环读取文件的每一行写进变量V_LINE中
    V_ARR_FIELD := TO_FIELD(V_LINE); 你可以自己写一个方法把这个行分解成自己需要的字段值
    最后关闭这个UTL_FILE.FCLOSE(V_FILE);   
    其他的我就不能帮你了
      

  2.   

    谢谢 sandyen(杉叶) 了!!