当前位置: 首页 > DDS > 正文

我们的文章会在微信公众号IT民工的龙马人生博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

作为一名长期使用从事Oracle数据库的人员,习惯了在sqlplus中各种动态参数赋值,但是在 PostgreSQL 的命令行客户端 psql 中,虽然有类似的变量功能,只是语法略有不同,功能也比要弱很多,下面从在日常使用 PostgreSQL 的 psql 客户端时,我们常常会在脚本中用到的传入动态参数方法,可以让 SQL 更加灵活复用。

一、变量定义方式

1.1 使用 \set 静态赋值

sql
\set name 'shared_buffers'
SELECT name, setting, unit, context
FROM pg_settings
WHERE name = :name;

:name 表示变量引用,使用时无需再加单引号。

1.2 使用 \prompt 交互式赋值

\prompt '请输入要查询的参数名: ' name
SELECT name, setting, unit, context
FROM pg_settings
WHERE name LIKE '%' || :name || '%';

\prompt 会在脚本执行时提示用户输入变量值。

1.3 通过命令行 -v 参数赋值

psql -v name="'work_mem'" -f get_param.sql

get_param.sql 示例:

SELECT name, setting, unit FROM pg_settings WHERE name = :name;

如果参数是字符串类型,请在命令行中包含引号,如:"’work_mem’"。

——————作者介绍———————–
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)


PG系列:在 `psql` 客户端中定义参数与动态赋值:等您坐沙发呢!

发表评论

gravatar

? razz sad evil ! smile oops grin eek shock ??? cool lol mad twisted roll wink idea arrow neutral cry mrgreen

快捷键:Ctrl+Enter