I am trying to insert an array into a table, but I need to convert the list to an SQL array type. I use the Connection#createArrayOf() method, but I get an exception.
I need to pass the type name, but I donโt know what it is, and I always get an exception. Array from VARCHAR.
How did I decide to insert an array?
The code
Object[] array = new Object[token.getCategories().size()]; array = token.getCategories().toArray(); pstmTokenInsert.setArray(1, conn.createArrayOf("VARCHAR", array));
Stacktrace element
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)
Renato dinhani
source share