2017-10-04 77 views
0

我想使用下面的命令將文本文件從S3複製到Redshift,但得到相同的錯誤。將txt文件複製到Redshift

錯誤: 缺少換行符:在位置發現177

複製表從意外的字符0xffffffe2 'S3:// abc_def/txt_006' 憑據 '1234567890' DELIMITER '|' NULL AS'NULL' NULL AS'';

該文本文件沒有標題和字段分隔符是|。 我嘗試使用:ACCEPTINVCHARS傳遞參數。

紅移示出了相同的錯誤

1216錯誤代碼:無效的輸入線。

任何人都可以提供如何解決這個問題?

在此先感謝。

+0

歡迎來到SO。請適當地格式化您的問題。 –

+1

你有沒有檢查位置177的內容?如果您可以提供導致錯誤的數據樣本以及表格說明,可以幫助我們爲您提供幫助。 – Guildencrantz

+0

嘗試打開文件(十六進制編輯器)並檢查此位置是什麼? – MiloBellano

回答

0

你的文件是UTF8格式嗎?如果不轉換並嘗試重新加載。

0

我假設文本文件的路徑是正確的。您還使用某種工具生成了文本文件並手動上傳到紅移

我面臨同樣的問題,問題在於空格。我建議您通過將空格置零和修剪來生成文本文件。

您的查詢應該是從{table}中選擇RTRIM(LTRIM(NULLIF({columnname},''))).. ..。將該查詢的輸出生成爲文本文件。

如果您正在使用SQL Server,通過將上述查詢所有的列和函數

查詢出使用 BCP.EXE

然後在S3

上傳TXT文件後,使用下面的命令副本

副本{表}
從 'S3:// {路徑}的.txt'
access_key_id '{}的值'
secret_access_key '{}的值'{您也可以使用憑證如上所述}
分隔符'|'
COMPUPDATE ON
removequotes
acceptinvchars
emptyasnull
trimblanks
BLANKSASNULL
FILLRECORD
;
commit;

這解決了我的問題。如果您有其他問題,請告訴我們。

相關問題