我得到這個錯誤:複製CSV文件到一個表中的PostgreSQL
ERROR: syntax error at or near "\"
LINE 1: \COPY "Staging_Budget" FROM 'C:\Users\My.Name\Desktop\RD - F...
^
********** Error **********
當我試圖執行這個簡單的命令:
\COPY "Staging_Budget" FROM 'C:\Users\My.Name\Desktop\RD - Facilities Management (001321).csv';
誰能告訴我這是爲什麼?
另外,任何人都可以告訴我,爲什麼沒有網上的例子有驅動器(C :)或文件路徑中列出的文件類型(.csv)像我一樣?
Postgres的版本是9.5,我的操作系統是Windows 7
謝謝!
更新:
我想,而不是運行此聲明:
COPY "Staging_Budget" FROM STDIN 'C:\Program Files (x86)\PostgreSQL\9.5\data\csv\RD - Facilities Management (001321).csv';
我讀here,我需要移動的CSV文件到Postgres的CSV文件目錄。我沒有一個,所以我在上面的語句中的文件路徑中創建了它。現在,我得到這個錯誤信息:
ERROR: syntax error at or near "'C:\Program Files (x86)\PostgreSQL\9.5\data\csv\RD - Facilities Management (001321).csv'"
LINE 1: COPY "Staging_Budget" FROM STDIN 'C:\Program Files (x86)\Pos...
^
我不明白爲什麼當它在每一個例子給了我發現在網上和參考指南中的Postgres不喜歡撇號。
Postgres數據庫在我的電腦上,所以服務器是localhost。所以,數據庫應該能夠引用我電腦上的任何文件,對吧?我也嘗試複製「Staging_Budget」從STDIN'C:\ Users \ My。名稱\桌面\ RD - 設施管理(001321).csv';並在'H:'處得到語法錯誤。我的語法有什麼問題嗎? – christopheralan88
數據庫進程(postmaster)應該能夠訪問給定的文件,也就是postgres用戶(在其中運行PostgreSQL服務)可能具有對該文件的讀取權限。 –
例如,在Linux中我們可以發出:$ cat file.csv | psql -c'從STDIN複製表'。在Windows中它是相似的,所以你可以執行:>鍵入file.csv | psql.exe -c'COPY table from STDIN' –