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