2016-11-02 5 views
0

ArrayList temp2 = new ArrayList(); Postgresql ошибка при попытке вставить Длинный массив

Im наполнения этого ArrayList с долготами.

Когда я пытаюсь вставить это в PostgreSQL, я использую следующие:

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

Использование шаблона JDBC. Но когда я пытаюсь запустить этот код, он дает ошибку на «ARRAY [?]». Но если temp2 является одним номером, например: 1253214, он работает. У кого-нибудь есть идея?

Моя ошибка:

PreparedStatementCallback; плохая грамматика SQL [UPDATE pb1plnitm SET parent_pb1plnitm_unid = ARRAY [?] WHERE pb1plnitm_unid =?]; Вложенное исключение - org.postgresql.util.PSQLException: не может вывести тип SQL, который будет использоваться для экземпляра [Ljava.lang.Long ;. Используйте setObject() с явным значением типа, чтобы указать тип использования.

ответ

2

, как указано в описании ошибки, сделать использование setObject() метода

например: [?]

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

Кроме того, необходимо удалить 'массива' часть и использовать только 'SET parents_pb1plnitm_unid = ? ' –

+0

Спасибо, ребята, это решило это для меня! –

Смежные вопросы