我正在嘗試將 sql 檔案傳遞??給 psql。閱讀檔案后,嘗試:
psql_args=(
"password='$INPUT_PASSWORD'"
dbname=analytics
"host='$INPUT_HOST'"
user=analytics
port=32648
file=query.sql
)
psql "${psql_args[*]}"
psql: error: invalid connection option "file"
root@380773cb4e26:/#
如果我洗掉 file=query.sql arg 這會導致連接到 psql。我只是不知道如何將查詢檔案傳遞給它?
在檔案中,這里有兩個引數看起來很有趣:
-f 檔案名 --file=檔案名
Read commands from the file filename, rather than standard input
并且:
-c 命令 --command=command
Specifies that psql is to execute the given command string, command
我嘗試了file=query.sql一個,但失敗了,上面的錯誤訊息。命令一個想要一個字串,而我想傳遞一個 .sql 檔案。反正我試過:
psql_args=(
"password='$INPUT_PASSWORD'"
dbname=analytics
"host='$INPUT_HOST'"
user=analytics
port=32648
command=query.sql
)
psql "${psql_args[*]}"
psql: error: invalid connection option "command"
有沒有辦法可以將 query.sql 傳遞給 psql 以運行查詢?
uj5u.com熱心網友回復:
您似乎將選項打包成一個連接字串。但是 --file 必須直接作為 psql 的選項提供,而不是作為連接字串的一部分。
psql "${psql_args[*]}" --file=query.sql
uj5u.com熱心網友回復:
由于其他答案似乎忽略了這一點。
以下是如何將動態選項存盤到陣列中,并將其作為引數傳遞給命令:
#!/usr/bin/env bash
psql_args=(
"--password=$INPUT_PASSWORD"
"--dbname=analytics"
"--host=$INPUT_HOST"
"--user=analytics"
"--port=32648"
"--file=query.sql"
)
psql "${psql_args[@]}"
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/333142.html
標籤:PostgreSQL 猛击 贝壳 嘘 查询语句
