匯入匯出時chr 13 和chr 10 的處理

2021-07-11 17:52:05 字數 1124 閱讀 9064

今天做專案匯入匯出的時候遇到乙個問題:(文字敘述有點亂

sqluldr匯出的檔案,然後使用sqlldr匯入一張表結構完全一致的表時出現錯誤提示。

提示表的字元不匹配,以及字元長度超過限制

於是看了一下,匯出來的檔案以及表結構

表結構中有varchar(2000)的字段,在匯出的檔案中對比,發現該行出現斷層(換行)

在sqluldr的命令中,在該字段加上  replace(a,chr(10),''),再次匯出檔案。

開啟檔案對比發現該欄位還是會出現斷層(換行),繼續修改sqludr的命令

在該字段加上 replace(replace(a,chr(10),''),chr(13),''),再次匯出檔案。

開啟檔案,斷層消失

總結:sqluldr匯出的檔案中如果出現斷行,那麼sqlldr匯入的時候就會出現各種不匹配和超過限制。

至於chr(10)換行&chr(13)回車的區別,可以到linux換行都是/n,windows是/n和/r

實施sqlldr匯入,提示失敗

檢視錯誤日誌:

record 1: rejected - error on table test01, column create_date.

ora-01861: literal does not match format string

字元不匹配,再次看看日誌

credit_date                          next     *           character   

terminator string : '@|@'

發現匯入的格式character    ,而表結構        credit_date是date

所以需要轉換一次

修改控制檔案

credit_date "to_date(: credit_date,'''yyyy-mm-dd hh24:mi:ss)"

同時對於字段超過255的字段需要特別指定字元長度

例如:desc char(500)(注意是char而不是varchar)

總結:sqluldr匯出時需要特別注意換行符和回車符,sqlldr匯入時注意字段型別(特別是date)是否需要轉換,欄位的長度超過255的都需要特別指定長度char(lengh);

oracle新增換行符chr 13

select abcdef chr 10 chr 13 hjkml from dual oracle中去掉文字中的換行符 回車符 製表符小結 一 特殊符號ascii定義 製表符 chr 9 換行符 chr 10 回車符 chr 13 二 巢狀使用repalce,注意每次只能提交乙個符號,如先回車再換...

13 oracle匯出 匯入

匯出 匯出分三種 匯出表 匯出方案 使用者 匯出資料庫 匯入匯出不需要進入sqlplus,都需要從cmd進到所安裝的oracle目錄的bin資料夾下 主要目的是我們要用到裡面的exp.exe應用程式 exp其實是export縮寫 一 匯出表 匯出表分為匯出自己的表和匯出其他方案的表 1 匯出本使用者...

JDK13匯入匯出jar包問題

因為專案需求,需要將工程匯出成jar包,給其他人用,而且工程中還需要使用其他的jar包,關於jar打包的方式,網上有很多的,可自行查詢。包含其他jar的方式打包出乙個test.jar,然後自建乙個測試project匯入這個jar測試下能否使用,結果是新的工程匯入test.jar沒問題,build p...