繁体   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