postgresql - Oracle 输入变量 =&name 在 Postgres 中等效
问题描述
我正在尝试在 Postgres 中将以下命令作为一条动态 SQL 运行,该 SQL 接受命令行上的输入变量。例如,在 Oracle 中,我会使用='&TABLE_OWNER'来提示并接受表所有者,但我在 Postgres 中找不到等价物?
例如。
在甲骨文我会这样做:
select 'drop table '||owner||'.'||table_name||';' from dba_tables where owner='&TABLE_OWNER';
但是 Postgres 中的等价物是什么?
select 'drop table '||schemaname||'.'||tablename||';' from pg_tables where schemaname='<INPUT_VARIABLE>';
解决方案
psql
变量用冒号引用,例如:aname
.
\prompt 'gimme the schema name' aname
SELECT ... FROM information_schema.tables WHERE table_name = :'aname';
开场白必须在冒号之后。
推荐阅读
- symfony - API 平台 Symfony,在使用 sarbacane 发送短信时无法验证布尔类型的值
- python - 如何在 python 网页抓取中创建循环以进行列表
- angular - Connect 方法 DataSource 未发出 MatTable 的所有分页行
- unit-testing - 如何为 Strapi 单元测试添加夹具
- r - 外部安装库,不只是引用
- javascript - 如果存在则从数组中删除的更优雅的方法,如果不存在则推送
- c++ - Visual C++17 错误 C2280 试图引用已删除的函数
- python - 将日期字符串格式转换为日期时间 Python 对象
- vim - 是否可以在 vi 中的目录导航期间查看当前文件内容(命令行,而不是 GUI)?
- shiny - Shiny: Display textOutput() if input is different from the default value