问题标签 [postgresql-9.1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1835 浏览

c++ - 使用可空参数调用 PL/PGSQL 函数

问题:

我在使用 plpgsql 语言在 Postgres (9.1) 中创建的函数时遇到问题。我来自 SQL Server 的世界,所以这里有一点语言差距。

我的问题是 postgres 似乎没有分配我正确传递的参数。

这是我的函数定义:

该函数本身在数据库环境中测试时工作正常,但我目前正试图通过 ODBC 连接从 C++ 调用它。

这里是我设置参数的地方:

在这种情况下,我没有将 param2 分配给任何值。它是可空的 - 不应该是一个问题。

我得到的错误是:

错误:函数 func1(unknown, integer) 不存在;

从我所见,调用试图按顺序分配参数,忽略参数名称。

问题:

1 - 我怎样才能调用这个函数来完成这项工作?我是否必须将“NULL”作为缺少的参数传递,并确保它们都井然有序?

2 - 如果我使用的是 ODBC 连接,我肯定是,我应该调用一个 SQL 语言函数,而该函数又调用一个 PLPGSQL 函数吗?这有点令人费解,但我愿意尝试。

3 - (不是问题)请不要建议“不要使用 ODBC”。另外,除非必要,否则请不要尝试更改函数的内部结构。我现在主要关心的是学习如何通过 ODBC 在 postgres 中进行函数调用。

提前感谢大家花时间阅读本文,并非常感谢任何回答的人。

更新:

这是 DboCommand:

曾经是这个

现在,错误是:

绑定参数的数量 < 参数标记的数量

0 投票
2 回答
9446 浏览

postgresql - 使用 ALTER SEQUENCE 后如何在 Postgres 中查看新的序列所有权信息?

我正在使用“ALTER SEQUENCE sequence OWNED BY table.column”来更改 Postgres 中的序列关联。有没有办法使用 \ds 或类似的东西来查看这些新信息?\ds 仍将表所有者显示为序列所有者。

0 投票
1 回答
2694 浏览

postgresql - 在 postgres 9.1 中记录触发器的触发

我们的数据库在数据库内的触发器中存储了大量的业务逻辑。有没有办法记录触发器的触发以及它们被触发的参数以及它们发生了什么变化?

我看到了很多关于如何使用触发器进行表审计的教程,但我想审计触发器而不是表 :)

0 投票
3 回答
45432 浏览

sql - 仅当 PostgreSQL 表不存在时才添加主键

我在 Postgres 9.1 中有简单的表创建脚本。仅当它不存在时,我才需要它来创建具有 2 属性 PK 的表。

任何解决方案如何解决这个问题?提前致谢。

0 投票
1 回答
822 浏览

query-optimization - 在 PostgreSQL 9.1 中刷新缓存以进行基准测试

我正在使用在 Debian Linux 上运行的 Postgresql 9.1 执行一些基准测试任务。我想对共享公共部分的查询工作负载进行基准测试。在运行每个查询之前,我重新启动数据库并执行以下命令:

回声 3 > /proc/sys/vm/drop_caches

旨在删除共享内存和操作系统缓存。但是,我注意到,如果我以不同的顺序运行相同的查询工作负载,我会得到不同的查询响应时间。我怀疑查询优化器以某种方式“记住”了如何有效地执行公共查询部分或重用一些以前缓存的结果。

您对如何解决此问题有任何想法吗?无论查询顺序如何,我都希望获得大致相同的响应时间。请注意,我正在解析 EXPLAIN 输出以提取实际运行时间。

0 投票
2 回答
979 浏览

postgresql - PostgreSQL 在 Linux 上安装错误 - edb 不存在

在 Linux VM 上全新安装 Postgres Plus Advanced Server 9.1。我现在已经安装了两次,我也遇到了同样的问题。当我打开 Postgres Enterprise Manager 并右键单击“Postgres Plus Advanced Server 9.1”(上面有一个红色的 X)并单击“连接”时,我输入密码,然后我收到错误消息:

发生错误:连接服务器时出错:致命:数据库“edb”不存在

我迷路了 - 我已经搜索和搜索,但找不到任何好的解决方案。

0 投票
1 回答
174 浏览

jdbc - PostgreSql9.1 中的可更新结果集

我正在研究 Postgresql9.1 DB 和 JDBC,并且想要更新列值,但是为此 DB 软件必须支持可更新的结果集,9.1 版本是否支持可更新的结果集?

谢谢

0 投票
4 回答
6790 浏览

sql - 简化用于列出表和索引大小的 Postgres SQL 查询?

以下 Postgres SQL 查询将列出来自所有模式的所有表及其大小和索引大小。如果一个表只是一个索引表,它将显示为 100% 索引。

它将给出以下结果:

我已经到了一个看不到所有树木的森林的地步,它开始变得有点笨拙。

我想知道其中是否有任何可以简化或冗余的内容?如果可以使查询变得更简单,则列不必保持不变。

0 投票
1 回答
302 浏览

grails - 延迟加载枚举类型时,Grails Gorm DDL 在 Postgres 9 中失败

考虑 Grails 中的以下域类:

在 Postgres 9.1 数据库上使用“create-drop”运行应用程序时,出现以下错误:

如果我删除延迟映射,错误就会消失。但是,出于其他原因,懒惰是必要的。我目前的解决方法是创建没有延迟映射的数据库,然后更改域类,这在开发环境中非常烦人。

关于如何修复 gorm 映射以使 varchar(-1) 像往常一样成为 varchar(255) 的任何想法?

0 投票
1 回答
11265 浏览

connection - Npgsql:从池中获取连接时超时

背景:我正在将我的应用程序从 mssql 移动到 npgsql v2.0.11.92。在运行我的应用程序几分钟或几小时后,我得到一个System.Exception: Timeout while getting a connection from the pool

我在 x64 平台上的 x86 环境中使用 lib 版本 2.0.11.92。所有连接都已关闭并最迟在 finally 块中处理,但过了一会儿,我收到错误消息。所以,应该是Npgsql库的问题。

在我的应用程序中,每隔几秒钟就会在后台发生大量查询,但大多数时候,它们只是按顺序运行,而不是并行运行。

我使用的连接字符串是:SERVER=mydbserver;MINPOOLSIZE=3;MaxPoolSize=15;ConnectionLifeTime=7;DATABASE=Test DB;UID=user;PWD=pass

我正在尝试诊断 npgsql 中泄漏的 postgres 连接。

仅供参考:Npgsql 库已经存在泄漏问题,该问题已在最新版本 2.0.11.92 中得到修复。但我认为仍然存在一些问题。

当前库版本(npgsql v2.0.11.92)是否有人遇到过类似问题?