簡體   English   中英

ShellScript的PSQL COPY

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM