天天看點

SqlServer替換換行符

問題描述:

       需要從SqlServer中導出一份表資料到Clickhouse中,從SqlServer中查詢出所需要的資料并儲存為csv檔案格式,将csv檔案導入Clickhouse時出現字段錯位導入失敗.

問題分析:

        從Clickhouse報錯資訊看出可能是字段中包含換行符号\r\n等特殊符号導緻檔案解析時不能正确的分割資料行,使用

head -n 2 檔案名稱

确認檔案行分割的确有問題.

解決方法:

       1.可以使用sed替換掉檔案中的\r\n,需要使用全局替換(預設按行替換),如果檔案比較大就耗費時間比較長.

       2.從SqlServer查詢資料時使用Replace替換調字段中的\r\n,最初使用:

replace(字段名, '\n','')

replace(字段名, '\r','')

不起作用,後改為:

replace(字段名, CHAR(10),'')

replace(字段名, CHAR(13),'')

成功解決問題.其中CHAR(10)對應\n,CHAR(13)對應\r