我正在使用外殼腳本從'extr'表中提取數據。 extr table是一個有410列的非常大的桌子。該表有61047行數據。一個記錄的大小約爲5KB。在假脫機文件列中移位
我的腳本如下:
#!/usr/bin/ksh
sqlplus -s \/ << rbb
set pages 0
set head on
set feed off
set num 20
set linesize 32767
set colsep |
set trimspool on
spool extr.csv
select * from extr;
/
spool off
rbb
#-------- END ---------
一個細一天extr.csv文件具有2個記錄用不正確的列數(即,一個記錄有更多的列數和其他具有較少)。經調查,我知道這兩個重複的記錄在文件中重複。記錄的主鍵理想情況下應該是唯一的文件,但在這種情況下,重複2條記錄。另外,列中的轉變是突然的。 輸出文件的小例子:
5001|A1A|AAB|190.00|105|A
5002|A2A|ABB|180.00|200|F
5003|A3A|AAB|153.33|205|R
5004|A4A|ABB|261.50|269|F
5005|A5A|AAB|243.00|258|G
5006|A6A|ABB|147.89|154|H
5003|A7A|AAB|249.67|AAB|153.33|205|R
5004|A8A|269|F
5009|A9A|AAB|368.00|358|S
5010|AAA|ABB|245.71|215|F
這裏是5003和5004的主鍵記錄到位的5007和5008已經再次出現同樣的重複reciords已通過追加/削減轉移的5007和5008記錄他們的專欄。
需要你的幫助來分析爲什麼會發生這種情況?爲什麼2行被多次提取?爲什麼其他2行從文件中丟失?爲什麼記錄被轉移? 注意:該腳本自過去兩年以來一直運行良好,除了一次(以上提到)以外從未失敗。它在下次運行中成功運行。最近我們又添加了一個用光標訪問extr表的程序(僅供選擇)。
有人在第一次使用相同的輸出文件運行時啓動腳本嗎? extr.csv分區是否已滿?什麼東西重新啓動?環境中發生了什麼奇怪的事情? – 2015-02-27 21:22:07
在這種情況下,5個腳本由包裝腳本並行運行。所有的腳本都在後臺觸發,包裝器等待所有腳本完成。3個是使用'select'查詢提取數據的shell腳本,其餘2個是COBOL程序。一個COBOL程序通過聲明一個遊標來從'extr'中讀取數據。包裝腳本使用TWS調度程序進行調度。沒有其他腳本與包裝並行運行。文件系統中有足夠的可用空間。什麼都沒有重新啓動。事件發生當天環境很正常,沒有什麼奇怪的報道。 – Sandy 2015-03-02 07:34:41
嗨@WalterA您能否根據我的回答提供一些意見? – Sandy 2015-03-14 07:50:25