1

我有一个包含类型列的 Postgres 表text[][]。在 JDBC 代码中,我使用了一个字符串数组,但一个异常告诉我这两个不匹配。如果这些类型之间没有映射,您能否建议字符串数组使用 Postgres 类型?

这是代码:

String list = "'{";
        for(int i=0; i<array.length; i++) {
            list+=prodotti[i]+",";
        }
        list+="}'";

        preparedStm.setString(4, list);
4

1 回答 1

1

要了解多维 PostgreSQL 数组类型,请考虑手册中的以下引用

当前的实现也不强制声明的维数。无论大小或维数如何,特定元素类型的数组都被认为是同一类型。因此,在其中声明数组大小或维数 CREATE TABLE只是文档;它不会影响运行时行为。

text[]在内部,typestext[][]与 PostgreSQL 相同。如果该列实际上包含二维文本数组,则必须匹配 Java 中的维度。但它也可以包含 1 维或 3 维数组。PostgreSQL会允许它。

另请注意,textcharacter varying( varchar) 在 PostgreSQL 中是不同的数据类型(当varchar没有长度修饰符时,它们的作用基本相同)。首先阅读手册中的字符类型

于 2012-05-24T21:25:57.347 回答