討論區快速選單
知識庫快速選單
沒有人比Cloudera更了解大數據 討論區最近新進100則主題 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
Cobol DAT轉文字檔發生cobol i/o error 39.03訊息
更改我的閱讀文章字型大小
作者 : jlchien(蝸牛)
[ 貼文 2 | 人氣 816 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/7/11 上午 05:03:06
請教各位前輩最近小弟在移轉系統,遇到需要將Cobol的DAT資料轉入SQL的問題因此寫了一個Cobol的轉檔程式,在執行後發生錯誤訊息cobol i/o error 39.03 on saf007 file c:\cobol\test\saf007.dat
小弟在網上查詢cobol i/o error 39,03是輸出輸入問題"所定檔案組織之RECORD最大的長度與實際檔案最大長度不能配合"但小弟查看了FD檔後也算過欄位因該沒錯,不知道是小弟程式有錯,請各位前輩救命一下


IDENTIFICATION DIVISION.
PROGRAM-ID. README.

     /////////* 解說表 */////////

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM.
OBJECT-COMPUTER. IBM.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SAF007 ASSIGN TO DISK "SAF007.DAT"
ORGANIZATION INDEXED
ACCESS DYNAMIC
RECORD KEY SA007-KEY
ALTERNATE RECORD KEY SA007-A-KEY.
SELECT TRSAF007
ASSIGN TO DISK "TRSAF007.TXT"
ORGANIZATION IS LINE SEQUENTIAL.

DATA DIVISION.
FILE SECTION.
COPY SAF007.FD.
FD TRSAF007.
01 TRSAF007-REC PIC X(192).
WORKING-STORAGE SECTION.
77 EOF PIC X.
01 ADDRESS.
02 SA007-YM-O PIC 9(04).
02 SA007-ID-O PIC X(10).
.
.
.
.
.
.
.
.
02 SA007-HOUSE-O PIC X(12).
02 SA007-ACCOUNT-O PIC X(12).

PROCEDURE DIVISION.
MAIN-RTN.
MOVE N TO EOF.
OPEN INPUT SAF007, OUTPUT TRSAF007.
DISPLAY START THE PROGRAM HAHA.

PERFORM A100-RTN UNTIL EOF = Y.
CLOSE SAF007 TRSAF007.
STOP RUN.
A100-RTN.
MOVE SA007-YM TO SA007-YM-O.
.
.
.
.
.
.
MOVE SA007-HOUSE TO SA007-HOUSE-O.
MOVE SA007-ACCOUNT TO SA007-ACCOUNT-O.

WRITE TRSAF007-REC FROM ADDRESS.
READ SAF007 NEXT RECORD
AT END
MOVE Y TO EOF.
作者 : hcsu(阿吉)
[ 貼文 8 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/7/15 上午 11:29:30
看你的程式除了
DISPLAY START THE PROGRAM HAHA.
這行我不知是做什麼外,都沒問題,
cobol i/o error 39,03是檔案長度錯誤問題也沒錯,
我建議你寫一支TEST.CBL來OPEN FILE,CLOSE FILE
來確認你的SELECT 和 FD 與實際檔案是否一致
作者 : michaelhsiao(michael)
[ 貼文 13 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/7/31 上午 10:03:52
39,03指的是檔案格式不合,而其不合的可能是檔案長度,也可能I NDEX不符.而您的問題應在檔案INDEX上,即文字檔不應有INDEX.而且其ORGANIZATION 與ACCESS MODE都不對.您修改如下看看.

     ORGANIZATION IS LINE SEQUENTIAL
     ACCESS MODE IS SEQUENTIAL
作者 : jlchien(蝸牛)
[ 貼文 2 | 人氣 816 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/8/14 上午 01:59:23
謝謝各位大大的教導,小弟最後的做法是去看Cobol的程式查尋該DAT檔的產生來原,最後發現是由其他的多個DAT匯入,我就依這一個規則將資料匯出到SQL,謝謝大大門的幫忙
 板主 : Cheryl
 > COBOL - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - COBOL - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
COBOL
1 wen 500 
2 小毛 310 
3 阿強 300 
4 ysl561 120 
5 bobkids 120 
6 zhaoxf 100 
7 chen 80 
8 ozzy 50 
9 WDCHIANG 50 
10 50 
COBOL
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
6.298828E-02