Cant call pl-sql stored procedure with OUT Parameter oracletypes.cursor

狂风中的少年 提交于 2020-01-16 18:26:26

问题


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.

"I'm always getting the error "java.sql.SQLException: Cursor is closed." The parameter (bellow) is: "Sql.out(OracleTypes.CURSOR), // lista de possiveis varios items a consumir"

Below my code (The connection is already openI

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 -> nRes = param1}

nRes

}

thanks! José Cruz


回答1:


In the database procedure you're calling, the cursor OUT parameter needs to be a REF CURSOR, not a regular cursor.



来源:https://stackoverflow.com/questions/4995362/cant-call-pl-sql-stored-procedure-with-out-parameter-oracletypes-cursor

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!