提问人:Debugger 提问时间:12/13/2021 最后编辑:Debugger 更新时间:12/22/2021 访问量:368
PSQL /copy :变量替换不起作用 |Postgresql 11
PSQL /copy :variable substitution not working | Postgresql 11
问:
我正在尝试读取CSV文件并将其写入表中,CSV文件位于我的本地计算机(客户端)中。我使用了 /copy 命令并实现了相同的效果。在这里,我在sql脚本中对文件路径进行了硬编码。我想参数化我的 csv 文件路径。
根据我的分析/复制不支持:变量替换,但不确定
我相信我们可以使用 shell 变量实现这一点,但我尝试了相同的方法,它没有按预期工作。
以下是我的示例脚本
命令:
psql -U postgres -h localhost testdb -a -f '/tmp/psql.sql' -v path='"/tmp/userData.csv"'
psql脚本:
\copy test_user_table('username','dob') from :path DELIMITER ',' CSV HEADER;
我从shell执行此命令,但没有得到这样的文件未找到异常。但是相同的脚本正在使用硬编码路径。
任何能够就此向我提供建议的人。
参考:
答:
0赞
jian
12/22/2021
#1
我是 Bash 的新手。到目前为止,你的问题对我来说很难。
我可以在一个 shell 脚本中完成。也许以后我可以把它变成两个剧本。
下面是一个简单的脚本文件。
#!bin/bash
p=\'"/mnt/c/Users/JIAN HE/Desktop/test.csv"\'
c="copy emp from ${p}"
a=${c}
echo $a
psql -U postgres -d postgres -c "${a}"
上一个:重新同化变量
下一个:如何在python中传递简单参数
评论