Sql Postgres的from子句中的Bind变量
我正试图为SQLDeveloper编写一个扩展,以更好地支持Postgres。这些只是包含SQL代码段的XML配置文件。要显示postgres序列的值,我需要运行以下形式的简单查询:Sql Postgres的from子句中的Bind变量,sql,postgresql,variables,Sql,Postgresql,Variables,我正试图为SQLDeveloper编写一个扩展,以更好地支持Postgres。这些只是包含SQL代码段的XML配置文件。要显示postgres序列的值,我需要运行以下形式的简单查询: select * from schema.sequence 问题在于Oracle SQL Developer环境提供了正确的模式和节点(序列)名称作为绑定变量。这意味着我应该将查询的格式设置为: select * from :SCHEMA.:NAME 问题是绑定变量仅在select子句或where子句中有效(据
select * from schema.sequence
问题在于Oracle SQL Developer环境提供了正确的模式和节点(序列)名称作为绑定变量。这意味着我应该将查询的格式设置为:
select * from :SCHEMA.:NAME
问题是绑定变量仅在select子句或where子句中有效(据我所知),使用这种形式的查询会在“$1”处或附近返回一个”语法错误错误消息
有没有一种方法可以在不直接从序列中选择的情况下返回序列对象中的值?可能是pg_目录表中的一些钝连接语句?尝试以下方法:
select *
from information_schema.sequences
where sequence_name = :name
and sequence_schema = :schema;
这与从序列中执行select并不完全相同,但基本信息就在这里。您可以使用动态SQL:@Nicarus我曾考虑过立即执行,但至少在Oracle中,您不能使用它运行select语句。我没有看到任何使PG在这方面看起来有所不同的东西。我想我看的是错误的页面。您可以使用execute immediate
运行select语句,但是您不能返回结果集。您也可以执行psql-E
并查看\d sequence\u name
后面的SQL。谢谢,这工作得很好。我知道它一定会以某种方式可用,但我仍在学习PG架构和表。