Oracle - Ayuda con parametro out en java

 
Vista:

Ayuda con parametro out en java

Publicado por David Melendez (1 intervención) el 19/12/2005 21:55:59
Ayuda con esto:

tengo el siguiente procedimiento almacenado en oracle...

CREATE OR REPLACE PROCEDURE sp_contxclient(accion IN CHAR,cli_id_cliente IN CONTACTOS_X_CLIENTE.cli_id_cliente%TYPE,
cont_nombre IN CONTACTOS_X_CLIENTE.cont_nombre%type,cont_puesto IN CONTACTOS_X_CLIENTE.CONT_PUESTO%TYPE,
cont_dirfisica IN CONTACTOS_X_CLIENTE.CONT_DIRFISICA%TYPE,IDCONTACTO OUT INTEGER)

IS
cont_idcontacto INTEGER;
BEGIN
cont_idcontacto := 0;
if(accion = 'I')then
SELECT count(*) into cont_idcontacto FROM CONTACTOS_X_CLIENTE;
cont_idcontacto := cont_idcontacto + 1;
-- sp_contxclient2(cont_idcontacto,cli_id_cliente,cont_nombre,cont_puesto,cont_dirfisica);
INSERT INTO CONTACTOS_X_CLIENTE (cont_idcontacto,cli_id_cliente,cont_nombre,cont_puesto,cont_dirfisica) VALUES (cont_idcontacto,cli_id_cliente,
cont_nombre,cont_puesto,cont_dirfisica);
IDCONTACTO := cont_idcontacto;
end if;
END sp_contxclient;
/

y lo ejecuto en java asi :

cnx = new BdConeccion();
CallableStatement stat = cnx.getConnection().prepareCall(SQL_CALL_SP_CONXCLIENT_I);
stat.setString(1,this.identificador);
stat.setString(2,nombre);
stat.setString(3,puesto);
stat.setString(4,dir);
stat.registerOutParameter(5,Types.INTEGER);
//ResultSet res = stat.executeQuery();
//res.next();
stat.executeUpdate();
int identifcont = stat.getInt(5);

donde SQL_CALL_SP_CONXCLIENT_I ES IGUAL A : "{call sp_contxclient('I',?,?,?,?,?)}"

todo bien parece pero me da el error : java.sql.SQLException: ORA-00911: invalid character

porfavor ayudenme...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con parametro out en java

Publicado por juanpa (16 intervenciones) el 26/12/2005 22:39:06
al parecer este es el error

SQL_CALL_SP_CONXCLIENT_I ES IGUAL A : "{call sp_contxclient('I',?,?,?,?,?)}"

SQL_CALL_SP_CONXCLIENT_I ES IGUAL A : "{call sp_contxclient('?',?,?,?,?,?)}"

si te fijas tienes un | en vez de un ? en el primer parametro de la llamada.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar