postgresql - 将命令行参数传递给 sql (Postgres)

标签 postgresql psql args

如何将命令行参数传递给使用 psql 运行的 sql 文件(Postgres)?

psql mydatabase < mysqlfile.sql arg1 arg2 arg3...

这可能吗?

最佳答案

使用variable interpolation feature在 psql 中。

如果在命令行指定-v variable1=value1--set variable1=value1 参数,则sql 中的:variable1文件将替换为相应的文本值。

注意:如果需要引号、空格等,请使用标准 SQL 引用字符串。

例子:

echo "SELECT :arg1 FROM :arg2 LIMIT 10;" > script.sql
psql mydatabase -v arg1=relname -v arg2=pg_class < script.sql  
psql mydatabase -v arg1="'some string' as label" -v arg2=pg_namespace < script.sql  

关于postgresql - 将命令行参数传递给 sql (Postgres),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50103585/

相关文章:

postgresql - 如何编写 Sql 查询以在计算 startDate 和 endDate 之间的日期差异后显示每月的休假总数

sql - 在特定行的值之后拆分表

postgresql - 如何保存和恢复 ON_ERROR_STOP 的值?

PostgreSQL 用户列表

java - 将 String [] args 值传递给另一个类

python - 名称错误 : name 'args' is not defined?

java - 如何在 Java 中将多对多关系建模为类?

sql - 使用 PostgreSQL 修剪尾随空格

python-3.x - 在线程中使用 psycopg2 游标的正确方法是什么?

Java:打印出args数组中的所有整数