Bir tabloya dizi eklemeye çalışıyorum, ancak listeyi SQL Array türüne dönüştürmem gerekiyor. Connection#createArrayOf()
yöntemini kullanıyorum, ancak bir istisna alıyorum.Java Listesinden bir SQL dizisi nasıl oluşturulur?
Bir tür adı geçmem gerekiyor, ancak bunun ne olduğunu bilmiyorum ve her zaman bir istisna alıyorum. Dizi VARCHAR'dan.
Diziyi eklemek için bunu nasıl çözüyorum?
kod
Object[] array = new Object[token.getCategories().size()];
array = token.getCategories().toArray();
pstmTokenInsert.setArray(1, conn.createArrayOf("VARCHAR", array));
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)
Oracle kullanıyor musunuz? SQL dizisi türü altta yatan veritabanına bağlıdır. – ManuPK
Özel Durumun stacktrace'ini yayınlayabilir misiniz? :) –
@ManuPK PostgreSQL –