[英]PSQL COPY from ShellScript
我正在編寫一個Shell腳本,該腳本從AWS S3提取數據(.csv文件),將其本地下載到EC2 Linux AMI實例,然后將數據復制到RDS PostGresql數據庫。
我的Shell代碼如下:
FILE="$(ls DB)"
PARAMETERFORDB= "'\\COPY table(x,y) FROM ''$FILE'' CSV HEADER'"
$(psql --host=XXXXX --port=XXXXX --username=XXXXX --password --dbname=XXXXX -c ${PARAMETERFORDB})
因此,從S3下載數據時,我將文件名存儲在FILE變量中(這是文件夾中的唯一文件,在數據庫查詢后該文件夾將被刪除)。
我收到以下錯誤消息:
./shellTest.sh: line 21: '\COPY table(x,y) FROM ''14.9.2016.csv'' CSV HEADER': command not found
psql: option requires an argument -- 'c'
Try "psql --help" for more information.
我究竟做錯了什么?
在行中
PARAMETERFORDB= "'\\COPY table(x,y) FROM ''$FILE'' CSV HEADER'"
刪除=
后面的空格並刪除單引號的一級:
PARAMETERFORDB="\\COPY table(x,y) FROM '$FILE' CSV HEADER"
在調用psql
的行中,將${PARAMETERFORDB}
用雙引號引起來,因為它包含空格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.