2012-10-02 54 views
2

時,我一直有這個psql的\ copy命令「沒有這樣的文件或目錄」的錯誤消息:「沒有這樣的文件或目錄」錯誤信息使用psql的 copy命令

\copy household from '/home/kihong/hh.csv' with csv header;

你有什麼建議嗎?

+1

「*你有什麼建議*」:在您運行顯然是文件或目錄的計算機上不存在'psql' –

+0

可能是文件服務器端?如果是這樣,你必須使用'COPY'而不是'\ copy'。否則:文件不存在。 –

回答

2

如果我是你,我會將文件移動到不同的文件夾(這對我有用)。我試圖從桌面上傳我的CSV文件,並得到錯誤信息。另外,Craig Ringer建議使用copy來代替\ copy。

下面是關於如何從電子表格中加載數據的逐步指令(Excel或OpenOffice計算值)移植到PostgreSQL:

保存電子表格頁爲CSV文件。首選方法是在OpenOffice Calc上打開電子表格並進行保存。在「導出到文本文件」窗口中,選擇字符集爲Unicode(UTF8),字段分隔符:「,」和文本分隔符「」「。將顯示消息,表示只保存活動工作表。注意:這個文件必須保存在一個文件夾中,但不能保存在桌面上,並且必須保存爲UTF8格式(postgreSQL by dafault升級爲UTF8編碼)。如果保存在桌面上,postgreSQL會給出「拒絕訪問」的信息,不會上傳。

在PostgreSQL中,創建一個與電子表格列數相同的空表格。

注意:在每一列,列名必須是相同的,數據類型必須是相同的。另外,請記住字符隨字段變化而變化的數據長度。

然後在PostgreSQL中,在SQL窗口,把代碼:

副本 「ABC」, 「DEF」 從E'C:\\ \\ TMP blabla.csv '分隔符',」 CSV標題;

注:這裏C:\\ TMP就是CSV文件「布拉布拉」被保存的文件夾。 「ABC」。「def」是在postgreSQL上創建的表,其中「ABC」是模式,「def」是表。然後按頂部的綠色按鈕執行「執行查詢」。 CSV表格在每列開始時具有標題時需要「CSV HEADER」。

如果everythig正常,將不顯示任何錯誤消息,並從CSV文件表數據將被加載到PostgreSQL表。但是,如果有一個錯誤信息做如下:

如果錯誤消息說,該數據是太長的特定列,然後增加列大小。這主要發生在字符和字符變化列上。然後再次運行「執行查詢」命令。

如果錯誤消息是說,數據類型不匹配的特定列,然後更改PostgreSQL表列的數據類型相匹配的一個以CSV表。

相關問題