| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/07/2007 18:24:31
|
rbamartins
JavaEvangelist
![[Avatar]](/images/avatar/a44879fe303dd43ad3f90d288329c039.jpg)
Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline
|
Não sei se estou no Fórum certo do GUJ.
Estou tendo o seguinte erro quando tento executar uma procedure em Java:
Minha chamada a procedure na classe java é a seguinte:
Alguém sabe me dizer o que poderia ser?
[]s
|
Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com
"Um homem forte se defende sozinho, o homem mais forte defende os outros." |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/07/2007 18:47:47
|
davidbuzatto
Forum Spammer
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 2095
Localização: São Carlos - SP
Offline
|
Bem, sua stored procedure existe? Sei que é uma pergunta idiota, mas...
Até mais!
|
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/07/2007 19:23:49
|
rbamartins
JavaEvangelist
![[Avatar]](/images/avatar/a44879fe303dd43ad3f90d288329c039.jpg)
Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline
|
davidbuzatto wrote:Bem, sua stored procedure existe? Sei que é uma pergunta idiota, mas...
Até mais!
Existe sim,
é a mesma que eu executo diretamente no TOAD do ORACLE.
Pesquisando mais aqui, eu acho que sei o que é já. Na verdade eu estava mandando minha classe executar uma função e uma função espera retorno.
O que vou tentar agora é criar uma procedure que receba os parametros que preciso passar a função e ela servir de ponte e chamar a função.
Não sei se poderia ser isso, vou testar ainda.
Caso alguém saiba o motivo, post aqui por favor.
|
Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com
"Um homem forte se defende sozinho, o homem mais forte defende os outros." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/07/2007 19:33:41
|
fabim
Forum Spammer
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1120
Localização: Vitoria - Espirito Santo
Offline
|
con.prepareCall("{call SCMBA_PROD.FUNC_UNIFICA_PACIENTE(?,?,?,?)}");
poderia ser substituido por:
con.prepareCall("{ ? = call SCMBA_PROD.FUNC_UNIFICA_PACIENTE(?,?,?,?)}");
callableStatement.registerOutputParameter( 1, OracleTypes.CURSOR ); // seu retorno da função
callableStatement.setLong( 2, umLongQualquer );
callableStatement.setLong( 3, umLongQualquer );
callableStatement.setString( 4, umaStringQualquer );
callableStatement.setTimestamp( 5, umTimestampQualquer );
se vc nao poe o ' ? = ', ele entende que nao tem retorno, entao entende que é um PROCEDIMENTO. Imagino que seja isso
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/07/2007 21:08:11
|
rbamartins
JavaEvangelist
![[Avatar]](/images/avatar/a44879fe303dd43ad3f90d288329c039.jpg)
Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline
|
fabiocsi wrote:con.prepareCall("{call SCMBA_PROD.FUNC_UNIFICA_PACIENTE(?,?,?,?)}");
poderia ser substituido por:
con.prepareCall("{ ? = call SCMBA_PROD.FUNC_UNIFICA_PACIENTE(?,?,?,?)}");
callableStatement.registerOutputParameter( 1, OracleTypes.CURSOR ); // seu retorno da função
callableStatement.setLong( 2, umLongQualquer );
callableStatement.setLong( 3, umLongQualquer );
callableStatement.setString( 4, umaStringQualquer );
callableStatement.setTimestamp( 5, umTimestampQualquer );
se vc nao poe o ' ? = ', ele entende que nao tem retorno, entao entende que é um PROCEDIMENTO. Imagino que seja isso
fabiocsi, amanhã quando voltar para o trabalho vou testar do modo que você citou.
Mas, a forma que eu citei no post anterior, criando uma PROCEDURE (que não tem retorno) que recebesse os parametros necessarios e servisse de ponte, repassando, para minha FUNÇÃO funcionou perfeitamente.
Vou tentar do seu modo, pois o que eu fiz foi uma meia gambiarra pra falar a verdade.
abração e obrigado pela dica.
|
Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com
"Um homem forte se defende sozinho, o homem mais forte defende os outros." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/07/2007 10:56:42
|
rbamartins
JavaEvangelist
![[Avatar]](/images/avatar/a44879fe303dd43ad3f90d288329c039.jpg)
Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline
|
fabiocsi
não consegui fazer da forma que vc falou.
Ele não reconhece o OracleTypes..
Estou fazendo da forma que já falei antes. Criei uma procedure, passo os parametros para ela que repassa para a função.
Abraços
|
Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com
"Um homem forte se defende sozinho, o homem mais forte defende os outros." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/07/2007 14:27:40
|
bernardo.rafael
Debugger
![[Avatar]](/images/avatar/8af141d3c5a5146a3eac9d166ab4c458.jpg)
Membro desde: 02/06/2006 08:03:51
Mensagens: 66
Offline
|
O problema pode ser o seguinte:
O Owner da Tabela não é o mesmo usuário que vc usa para conectar ao banco de dados. Nesses casos, você que informar sob qual "schema" está a procedure. Além disso, o usuário deve ter direitos de acesso ao "schema" tbm...
Dessa forma:
Dê uma olhada na documentação da Oracle
- http://download.oracle.com/docs/cd/B19306_01/java.102/b14355/toc.htm
- http://download.oracle.com/docs/cd/B19306_01/java.102/b14355/basic.htm#i1008346
|
-------------------------------------------
Abraços.
Rafael Bernardo |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/07/2007 15:03:10
|
rbamartins
JavaEvangelist
![[Avatar]](/images/avatar/a44879fe303dd43ad3f90d288329c039.jpg)
Membro desde: 01/03/2007 16:10:11
Mensagens: 358
Localização: Salvador
Offline
|
Valeu bernardo.rafael, por incrivel que pareça eu não havia encontrado essa documentação da Oracle.
Abraços
|
Rafael Britto A. Martins
http://rafaelmartinsjava.blogspot.com
"Um homem forte se defende sozinho, o homem mais forte defende os outros." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/07/2007 15:09:55
|
fabim
Forum Spammer
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1120
Localização: Vitoria - Espirito Santo
Offline
|
O "OracleTypes.CURSOR" foi só um exemplo, pro caso da sua função retornar um cursor com varios registros por exemplo... mas poderia ser qqer tipo de dados.
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
|
|