Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/12/2007, 19:44
canariozgz
 
Fecha de Ingreso: octubre-2006
Mensajes: 123
Antigüedad: 17 años, 6 meses
Puntos: 1
Error al llamar PL/SQL desde Java

Hola amigos tengo un procedimiento en Oracle con el siguiente codigo

create or replace
function numer_artic_s (p_idclient in varchar2) return number as
numero integer;
begin
select count(id_client) into numero
from venta
where id_client=p_idclient;
return numero;
end;

si lo llamo desde oracle de esta manera me funciona:

DECLARE
P_IDCLIENT VARCHAR2(200);
v_Return NUMBER;
BEGIN
P_IDCLIENT := 'MaBo01';

v_Return := NUMER_ARTIC_S(
P_IDCLIENT => P_IDCLIENT
);
DBMS_OUTPUT.PUT_LINE('v_Return = ' || v_Return);
END;

ahora lo llamo desde java de la siguiente manera:

public int consulta100(String cliente1){
int numero=0;
try {
CallableStatement sentenciaPreparada=conexion.prepareCall("{call numer_artic_s(?)}");
sentenciaPreparada.setString(1,cliente1);
sentenciaPreparada.executeQuery();
numero=sentenciaPreparada.getInt("numero");
System.out.println(numero);
} catch (SQLException e) {
System.err.println("Error al ejecutar la consulta: "+e.getMessage());
}
return numero;
}

y me da el siguiente error:

Error al ejecutar la consulta: ORA-06550: línea 1, columna 7:
PLS-00221: 'NUMER_ARTIC_S' no es un procedimiento o no se ha definido
ORA-06550: línea 1, columna 7:
PL/SQL: Statement ignored

Alguien sabe donde esta el problema?? es que es la primera vez que quiero llamar desde java a un plsql y en oracle funciona pero en java no, y no se donde esta el problema.

gracias