Java e Procedures - Tipo de Coluna Inválido

4 respostas
G

Olá pessoal !!

Estou com o seguinte problema…

Criei uma stored procedure para criação de usuário…

PROCEDURE create_user(login in varchar2, firstName in varchar2, lastName in varchar2, email in varchar2, password in varchar2, created out [b]boolean[/b]) IS

// aqui vem a criação

Ai na minha classe eu faço a chamada a essa procedure…

CallableStatement cs = con.prepareCall("{call SP2.CREATE_USER(?, ?, ?, ?, ?, ?)}"); cs.setString(1, login); cs.setString(2, firstName); cs.setString(3, lastName); cs.setString(4, email); cs.setString(5, password); cs.registerOutParameter(6, java.sql.Types.BOOLEAN); cs.executeUpdate(); isCreate = cs.getBoolean(6);

Ai quando conclui a execução… aparece Tipo de coluna inválido
na linha cs.registerOutParameter(6, java.sql.Types.BOOLEAN);

Achei estranho pois meu parametro de saida (out) é boolean e no parametro 6 eu coloquei tipo boolean …

Alguma saída para isto ??

Aproveito para agradecer à todos do forum, pois sempre o pessoal tem sido muito atencioso com os problemas de todos… é isso ae … parabens pessoal !!! :smiley:

4 Respostas

T

Seria demais perguntar qual é o banco que você está usando? Oracle, MySQL, DB2, PostgreSQL? (Pelo “IS” parece ser PL/SQL - Oracle :stuck_out_tongue: )

G

ISso mesmo thingol … ORACLE – PL/SQL

T

a) http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/getstart/mapping.html#1051555

b) BOOLEAN não é um tipo de dados SQL, mas PL/SQL. O Java não tem suporte direto para isso.

Em alguns lugares (consulte o Google com os parâmetros “Oracle Stored Procedure Java Boolean Out”) eles sugerem que você altere o tipo do parâmetro para INT, e use 0 = false e 1 = true.

http://www.stanford.edu/dept/itss/docs/oracle/10g/java.101/b10979/tips.htm#i1005380

G

humm…
Muito obrigado…

Vou tentar …

Criado 18 de janeiro de 2007
Ultima resposta 18 de jan. de 2007
Respostas 4
Participantes 2