Linux 將數據文件的記錄分割符\n替換成\r\n,然後入Oracle

Linux 將數據文件的記錄分割符\n替換成\r\n,然後入Oracle

編寫控制文件ctl,部分內容(截取了部分字段)如下圖:
在這裏插入圖片描述
查看文件編碼爲utf-8,現將文件編碼轉爲gbk,如下圖:
在這裏插入圖片描述
替換文件分隔符,使用以下命令:
sed -i “s/$/^M/g” cnca.bin
查看文件前幾條記錄:cat -A cnca.bin | head -n 2,
發現記錄分隔符爲^M$(Linux中代表回車換行符),如下圖所示:

在這裏插入圖片描述

利用Oracle的導入工具sqlldr,導入數據出現如下錯誤:
在這裏插入圖片描述
錯誤提示,超過讀取緩衝區,將readsize設置最大之後,還是依然報這個錯誤,然後查看文件分隔符依然只是\n,前面以爲文件替換M$之後記錄分隔符已經變成\r\n,其實只是在文件末尾增加了一個回車符M。經過幾番測試之後,終於找到了替換方法,使用如下命令,可以正常替換記錄分隔符:
sed -i “s/$/\r/g” cnca.bin
在這裏插入圖片描述
利用sqlldr測試,發現能正常入庫了:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章