我們的文章會在微信公眾號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'"。

------------------作者介紹-----------------------

姓名:黃廷忠

個人博客: (http://www.htz.pw)

CSDN地址: (https://blog.csdn.net/wwwhtzpw)

博客園地址: (https://www.cnblogs.com/www-htz-pw)