Erro ao chamar procedure no IBatis

1 resposta
K

Bom dia!

Estou com problemas para executar uma Stored Procedure no IBatis… Já simplifiquei o código o máximo possível, colocando o sql final já no XML, pra não ter erro, ficando assim meu xml:

...
<statement id="execProc" resultSetType="FORWARD_ONLY">
  	EXECUTE proc_anderson ('21') 
</statement>
...

E sendo que a chamada está assim:

sqlMap.update("execProc", new HashMap());

Ou seja, estou apenas chamando o método do IBatis sem passar nada, pois o SQL já está pronto no XML.

E mesmo assim, pego o erro:

com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in com/gesplan/gsolap/dao/maps/Cube.xml.  
--- The error occurred while applying a parameter map.  
--- Check the execProc-InlineParameterMap.  
--- Check the statement (update failed).  
--- Cause: java.sql.SQLException: ORA-00900: instrução SQL inválida

Caused by: java.sql.SQLException: ORA-00900: instrução SQL inválida

	at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:91)
	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:500)
	at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:85)
	at com.gesplan.gsolap.dao.impl.SqlMapCubeDao.execProc(SqlMapCubeDao.java:168)

Obs.: Se eu rodar o código SQL por fora ele funciona…

Obrigado pessoal!

1 Resposta

K

Descobri o problema…

Com JDBA, devemos usar “CALL” ao invés de “EXECUTE” para chamar uma SP… Sei lá pq, mas tava lá no manual, e funcionou!

Criado 16 de novembro de 2006
Ultima resposta 16 de nov. de 2006
Respostas 1
Participantes 1