【问题标题】:parsing PostgreSQL array datatype as array to perl将 PostgreSQL 数组数据类型解析为 perl 数组
【发布时间】:2013-08-07 03:50:29
【问题描述】:

我在将 PosgreSQL 数组数据类型解析为 perl 时遇到了可移植性问题。

在一台在 SUSE Linux 4.3.2 和 perl v5.10.0 上运行 PostgreSQL 8.3.7 的机器上,postgres 数组数据类型被解析为 perl 数组,而在另一台在 Red Hat 4.1.2-46 和 perl 上运行 PostgreSQL 8.4.4 的机器上v5.8.8 相同的数据类型被解析为表示 posgres 数组的字符串,例如。 '{{4,315}}'。在这两种情况下,都使用了相同的非常简单的代码。

use DBI;
$dbh = DBI->connect(DBI:pg [...]);
$res = $dbh -> selectall_arrayref(select [...]);

现在是问题:

如何强制一种行为,最好是前一种行为(解析为 perl 数组)? 这种行为取决于什么? (perl 版本?驱动程序?postgres 设置?postgres 版本?)

【问题讨论】:

    标签: arrays perl postgresql


    【解决方案1】:

    好吧,official docs 说您必须将$dbh->{pg_expand_array} 设置为真值。

    虽然我自己没有检查过。

    【讨论】:

    • 太好了,谢谢!不幸的是,将 postgreSQL 数组解析为字符串的机器上不存在 pg_expand_array。会不会是 DBI 编译不正确?
    • “不存在”是指我无法打印或设置它。 :)
    • 必须是DBD::Pg而不是DBI本身。
    • 自 2.0.0 发布以来似乎支持数组 2.0.0 2008 年 2 月 10 日发布(来自更新日志)
    • 谢谢!是的,这是版本问题 - 1.49
    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2013-11-12
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    相关资源
    最近更新 更多