Estoy tratando de insertar una matriz en una tabla, pero necesito convertir la lista al tipo de matriz SQL. Estoy usando el método Connection#createArrayOf()
, pero recibo una excepción.¿Cómo se crea una matriz SQL a partir de una lista Java?
Necesito pasar un nombre tipo, pero no sé qué es esto y siempre recibo una excepción. La matriz es de VARCHAR.
¿Cómo soluciono esto para insertar la matriz?
El código
Object[] array = new Object[token.getCategories().size()];
array = token.getCategories().toArray();
pstmTokenInsert.setArray(1, conn.createArrayOf("VARCHAR", array));
El StackTrace
org.postgresql.util.PSQLException: Could not find array type for data type VARCHAR
at org.postgresql.jdbc4.AbstractJdbc4Connection.createArrayOf(AbstractJdbc4Connection.java:73)
at org.postgresql.jdbc4.Jdbc4Connection.createArrayOf(Jdbc4Connection.java:21)
at org.apache.commons.dbcp.DelegatingConnection.createArrayOf(DelegatingConnection.java:560)
at br.ifsp.da.data.TokenDAO.insertTokens(TokenDAO.java:37)
at br.ifsp.da.data.ProcessedPageInserter.loopInsertion(ProcessedPageInserter.java:44)
at br.ifsp.da.data.ProcessedPageInserter.call(ProcessedPageInserter.java:27)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
¿Estás utilizando Oracle? El tipo de matriz SQL depende en gran medida de la base de datos subyacente. – ManuPK
¿Puedes publicar la pila de la Excepción? :) –
@ManuPK PostgreSQL –