我目前想BCP出的Sybase ASE數據庫(15.7)到BCP到SQL Server(2016)。所有BCP任務都在Windows環境中運行。BCP的Sybase ASE到SQL Server - 自定義字段分隔符
正如我與回車換行符記錄,我需要指定一個自定義記錄終止,以解決這個問題。我希望使用的終結者是「〜\ t \ t \ t \ t〜\ r \ n」。爲了便於閱讀,我添加了CRLF字符以防我需要打開文件。外出時的命令如下:
bcp database..table out table.dat -Sserver -Uuser -Ppassword -c -t "|\t\t\t\t\t|" -r "~\t\t\t\t\t~\r\n"
當我回到BCP到SQL Server中,我得到一個「字符串數據,右截斷錯誤」。命令如下:
bcp database..table in table.dat -SServer -T -c -t "|\t\t\t\t\t|" -r "~\t\t\t\t\t~r\n"
我正在使用ASE 15.7 SP126版本的BCP出來。 我對英寸使用BCP(13.0.1601.5)的SQL Server 2016版本。
根據線程here,我確定問題與用於-r選項的\ r \ n字符有關。如果我在out上使用-r「\ r \ n」進行測試,並且使用-r「0x0a」,則它可以工作(除了在數據中具有CRLF的記錄上失敗)。
只要我卸下了和在\ r \ n個字符,我可以在數據成功BCP。
有誰知道,如果是我可以使用的可打印字符+一個CRLF組合什麼辦法?
乾杯。
對不起 - 應該提到這一點。我正在使用BCP的ASE版本(15.7 SP126)。我會更新OP。 至於使用CRLF,純粹是爲了可讀性。至於選項卡,我嘗試了其他角色的組合,但發現我在一些散列字段中有錯誤匹配。標籤由組織中的其他人提出,所以我就這樣做了。 – Ash
短追查違規記錄,查看實際數據(OD-C),並找出哪些領域正在生成錯誤...和測試,取消CRLF字符解決了這個問題知道的......我會可能需要刪除CRLF字符以獲得即時解決方案;那麼當我有一些空閒時間時,我可能會更仔細地研究這個問題(如果只是作爲一個學習練習) – markp
謝謝,是的,這是目前的解決方案。我越想到它,我越是認爲文件被人讀取的機會很渺茫,所以它可能不是問題(我見過的最大的是35GB)。如果我必須打開一個,我只需要用一些東西來解決它。 – Ash