title: Cant call pl-sql stored procedure with OUT Parameter oracletypes.cursor
body: <p>I need some help to call a Oracle Stored Procedure in Groovy and receive a ResultSet by an Output Parameter.
  I can call stored procedure with output parameters of other data types, but for CURSOR I cannot find the way.</p>
  
  <p>"I'm always getting the error "java.sql.SQLException: Cursor is closed."
  The parameter (bellow) is: "<strong>Sql.out(OracleTypes.CURSOR), // lista de possiveis varios items a consumir</strong>"</p>
  
  <p>Below my code (The connection is already openI</p>
  
  <pre><code>def consumeProvisioning(Sql sql) {
  
  int nRes
  
  sql.call("{call Provisioning.ConsumirAprovisionamento(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}",
  [
  Sql.out(Sql.INTEGER.type), // quantidade possivel de consumir
  new java.sql.Date(2012,1,1), // Data Para Validação
  'testclient0000001', // IDCliente
  '*', // IDCatalogo
  '*', // Titulo
  '*', // IDObjecto
  '*', // IDAcervo
  '*', // Autor
  '*', // Origem
  '*', // ZonaGeo
  'FOTO', // Tipo Conteudo     
  '*', // Canal
  '*', // Context
  '*', // URLString
  1, // Quantidade a consumir
  'UNI', // Unidade do Stock
  new java.sql.Date(2011,1,1), // Data Conteudo
  1, // Mes
  1, // Dia
  1, // Hora
  1, // Minuto
  'GLOBAL_IMAGEM', // Site client
  1, // ScopeID
  'testclient0000001@user.com', //UserID
  null, // Tag
  null, // Metadado
  '*', // FOTO FORMATO
  '*', // FOTO QUALIDADE   
  null, // Video Formato
  null, // Video Qualidade
  null, // Som Formato
  null, // Som Qualidade
  null, // Artigo Formato
  null, //IDProvisioningMaster
  null, // Data de validade a colocar no consumo inline. Normalmente vai a null, pois o provisioning encarrega-se de verificar qual a mais adequada
  new java.sql.Date(2011,12,31), // CriadoEm
  'josecruz', // CriadoPor
  new java.sql.Date(2011, 12, 31), // ActualizadoEm
  'josecruz', // ActualizadoPor
  Sql.out(OracleTypes.CURSOR), // lista de possiveis varios items a consumir
  'FOTO2CONSUME1' // ID do objecto a consumir
  ]) {param1, param2 -&gt; nRes = param1}
  
  nRes
  
  }
  </code></pre>
  
  <p>thanks!
  José Cruz</p>