Gostaria de saber como executar store procedures com a classe CallableStatement, e como passar os parâmetros das stores procedures, já que algumas apresentam: - um parâmetro de entrada; - um parâmetro de saída; - um parâmetro de entrada e outro de saída;
E ainda, setar o role no Oracle 8i. Vcs poderiam me ajudar?
Ai vai im peq ex de chamada de procedure com par in e out:
CallableStatementcstmt=con.prepareCall("{call Busca_depto(?,?,?)}");intdep=Integer.parseInt(args[0]);cstmt.setInt(1,dep);cstmt.registerOutParameter(2,java.sql.Types.VARCHAR);cstmt.registerOutParameter(3,java.sql.Types.VARCHAR);cstmt.execute();Stringdname=cstmt.getString(2);Stringloc=cstmt.getString(3);System.out.print("Nome do departamento: “+dname);System.out.print(” Local: "+loc);
Vc precisa setar o parametro in.A posição 1 das “?” é o parametro in do tipo inteiro.
Depois vc diz que nas posições 2 e 3 são parametros de saida, registrando eles e dizendo o tipo de retorno(VARCHAR p/ ORACLE).
Ai vc executa e espera os retornos com tipos compativeis(String Java=VARCHAR Oracle).
Qualquer coisa manda!
[]'s
B
batata-javaPJ
Valeu mesmo cara! Agora tenho que setar o role. Vcs sabem fazer isso?
J
jgbtPJ
Não entendi direito.
Qual a role que vc quer setar???
Vc quer fazer via java???
B
batata-javaPJ
Fala cara! É o seguinte, foi me passado que para utilizar certas store procedures eu teria que setar um role, e gostaria de fazer isso em java…
J
jgbtPJ
É o seguinte
Vc quer setar uma role de privilegio p/ poder executar uma procedure?
Se for isso, nunca vi fazer isso pelo java, mas deve ter uma maneira.
Não sei em outros bancos, mas no Oracle vc seta roles p/ o usuario do banco. Nesse caso se o usuario que vc esta usando p/ conectar tiver grant de uma role vc não precisa fazer isso, quem define provilegios dos usuarios é o dba.
Por exemplo: Se vc tem um usuario “ze”, o dba vai dar grant da role tal para o ususario “ze”, ai vc vai ter acesso a tudo que diz respeito a role.
Não sei se era isso que vc queria saber.
Qualquer coisa manda.
[]'s
B
batata-javaPJ
Cara, não sei se é possível (ainda mais porque estou iniciando com JDBC), mas é o seguinte: Existem roles “pré-definidas” e gostaria de setar uma para um usuário, via Java. Ainda não encontrei solução, mas obrigado mesmo assim!