【问题标题】:Postgresql error when trying to insert Long array尝试插入长数组时出现 Postgresql 错误
【发布时间】:2016-11-02 08:04:29
【问题描述】:

ArrayList temp2 = new ArrayList();

我正在用 long 填充这个数组列表。

当我尝试将其插入到 postgresql 中时,我使用以下内容:

UPDATE pb1plnitm SET parents_pb1plnitm_unid = ARRAY[?] WHERE pb1plnitm_unid = ?", temp2, xmlForm.getFieldValueLong("uniqueid"));

使用 JDBC 模板。但是当我尝试运行此代码时,它会在“ARRAY [?]”上出现错误。但是如果 temp2 是一个单一的数字,例如:1253214,它可以工作。有人有想法吗?

我的错误是:

PreparedStatementCallback;错误的 SQL 语法 [UPDATE pb1plnitm SET parents_pb1plnitm_unid = ARRAY[?] WHERE pb1plnitm_unid = ?];嵌套异常是 org.postgresql.util.PSQLException:无法推断用于 [Ljava.lang.Long; 实例的 SQL 类型。使用带有显式 Types 值的 setObject() 来指定要使用的类型。

【问题讨论】:

    标签: java sql postgresql jdbc


    【解决方案1】:

    如错误描述中所述,使用setObject()方法

    例如:

    Array sqlArray = conn.createArrayOf("text", anyArray);
        pstmt.setArray(1, sqlArray);
        pstmt.executeUpdate();
    

    【讨论】:

    • 您还需要删除array[?] 部分,只使用SET parents_pb1plnitm_unid = ?
    猜你喜欢
    • 1970-01-01
    • 2016-08-18
    • 2022-01-20
    • 2020-11-25
    • 2016-04-30
    • 1970-01-01
    • 2014-11-21
    • 1970-01-01
    相关资源
    最近更新 更多