我们的文章会在微信公众号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` 客户端中定义参数与动态赋值的更多相关文章

  1. 19.翻译系列:EF 6中定义自定义的约定【EF 6 Code-First约定】

    原文链接:https://www.entityframeworktutorial.net/entityframework6/custom-conventions-codefirst.aspx EF 6 ...

  2. Vue路由规则中定义参数

    Vue使用routerLinke定义参数的时候  路由规则中不需要更改任何属性. 路由其实就是我们在html中定义的锚点,点击这个连接跳转一个锚点.vue中的路由也是这个原理, 前提是路由必须创建在实 ...

  3. 嵌入Python系列 | 调用Python模块中无参数函数

    开发环境 Python版本:3.6.4 (32-bit) 编辑器:Visual Studio Code C++环境:Visual Studio 2013 需求说明 在用VS2013编写的Win32程序 ...

  4. 在psql客户端中修改函数

    \ef 创建一个新的函数. \df 显示已经创建的函数. \df+    somefunc 显示这个函数的详细定义 \ef   somefunc 编辑这个函数, 编辑保存退出之后,要执行 \g ,刚才 ...

  5. 20.2.翻译系列:EF 6中基于代码的数据库迁移技术【EF 6 Code-First系列】

    原文链接:https://www.entityframeworktutorial.net/code-first/code-based-migration-in-code-first.aspx EF 6 ...

  6. 20.1翻译系列:EF 6中自动数据迁移技术【EF 6 Code-First系列】

    原文链接:https://www.entityframeworktutorial.net/code-first/automated-migration-in-code-first.aspx EF 6 ...

  7. 5.翻译系列:EF 6中数据库的初始化(EF 6 Code-First 系列)

    原文地址:http://www.entityframeworktutorial.net/code-first/database-initialization-in-code-first.aspx EF ...

  8. 10.1.翻译系列:EF 6中的实体映射【EF 6 Code-First系列】

    原文链接:https://www.entityframeworktutorial.net/code-first/configure-entity-mappings-using-fluent-api.a ...

  9. 15.翻译系列:EF 6中的级联删除【EF 6 Code-First 系列】

    原文链接:https://www.entityframeworktutorial.net/code-first/cascade-delete-in-code-first.aspx EF 6 Code- ...

  10. 7.翻译系列:EF 6中的继承策略(EF 6 Code-First 系列)

    原文地址:http://www.entityframeworktutorial.net/code-first/inheritance-strategy-in-code-first.aspx EF 6 ...

随机推荐

  1. Linux系列:如何用perf跟踪.NET程序的mmap泄露

    一:背景 1. 讲故事 如何跟踪.NET程序的mmap泄露,这个问题困扰了我差不多一年的时间,即使在官方的github库中也找不到切实可行的方案,更多海外大佬只是推荐valgrind这款工具,但这款工 ...

  2. 国际化利器 Intl Messageformat

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:霜序 Formats ICU Message string ...

  3. git管理Unity项目

    git管理Unity项目的正确打开方式 在创建仓库的时候进行初始化仓库,选择.gitignore模版的时候选择Unity,就能自动过滤不需要的文件 原文链接:https://blog.csdn.net ...

  4. java从小白到老白③

    PS:①小陌笔记中蓝色紫色等一切花哨字体皆用来引入知识点(废话流),可忽略不计 . ②黑字正文小陌竭力向言简意赅靠近再靠近. ③红色字体小陌觉得重要的地方 老规矩,题目引入: int a = 1; i ...

  5. java springboot图片上传和访问

    上传 @RequestMapping("/uploadImg") public Result uploadImg(HttpServletRequest request, Multi ...

  6. RDP远程桌面连接服务

    漏洞原理 Windows远程桌面内核驱动处理MS_T120通道时(管理数据传输时)没有对数据的数据包进行验证限制,没有将信道的指针删除(之后会回来访问恶意的数据包),攻击者无需认证即可向RDP服务(3 ...

  7. Opencv学习:使用Opencv对图象进行抠图和滤镜处理,实现“你的名字”动漫图片效果

    最近接到了一个坑爹题目,是这么要求的: 仿照 <你的名字>,对天坛图像.src.jpg进行处理.要求 (一)背景(天空)分割,替换后再融合 在自然界的图片中,很难出现动漫中大多大多的云彩. ...

  8. 【深入理解Spring AOP】核心原理与代理机制详解

    深入理解Spring AOP:核心原理与代理机制详解 引言 在现代Java开发中,面向切面编程(AOP)已经成为解决横切关注点的主流方案.作为Spring框架的核心模块之一,Spring AOP通过代 ...

  9. Selenui + Cucumber framwork structure

  10. 探索 Vue.js 组件的最新特性

    引言: Vue.js 作为一款流行的前端框架,始终在不断发展和演进,为开发者带来新的特性和功能,以提升开发效率和用户体验.Vue.js 组件是构建 Vue 应用的基础,其最新特性为开发者提供了更强大的 ...