首页 > 解决方案 > 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>';

标签: postgresqlpsql

解决方案


psql变量用冒号引用,例如:aname.

\prompt 'gimme the schema name' aname
SELECT ... FROM information_schema.tables WHERE table_name = :'aname';

开场白必须冒号之后。


推荐阅读