我在将 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 版本?)
最佳答案
嗯,official docs假设您必须将 $dbh->{pg_expand_array}
设置为真值。
虽然我还没有亲自检查过。
关于arrays - 将 PostgreSQL 数组数据类型解析为数组到 perl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6044389/