title: How create a SQL array from a Java List?
body: <p>I'm trying to insert an array in a table, but I need to convert the list to the SQL Array type. I'm using the <code>Connection#createArrayOf()</code> method, but I'm getting an exception.</p>
  
  <p>I need to pass a type name, but I don't know what is this and I always get an exception. The array is from VARCHAR.</p>
  
  <p>How I solve this to insert the array?</p>
  
  <p><strong>The code</strong></p>
  
  <pre><code>Object[] array = new Object[token.getCategories().size()];
  array = token.getCategories().toArray();
  pstmTokenInsert.setArray(1, conn.createArrayOf("VARCHAR", array));
  </code></pre>
  
  <p><strong>The stacktrace</strong></p>
  
  <pre><code>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)
  </code></pre>