今天做專案匯入匯出的時候遇到乙個問題:(文字敘述有點亂
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...