JSF - Problema con procedimientos almacenados

 
Vista:

Problema con procedimientos almacenados

Publicado por Felix (1 intervención) el 20/08/2010 11:48:44
Muy buenas:

Al intentar ejecutar un procedimiento almacenado, me da el siguiente error: "Ordinal binding and Named binding cannot be combined!"

Mi código donde ejecuto el proc es el siguiente:
String error = "";
final Date fecha = new Date();
CallableStatement cs = null;

try {
cs = con.prepareCall("?={call insertTraza (?,?, ?, ?)}");

// Cargamos los parametros de entrada IN
cs.setInt("idTraza", 1);
cs.setString("idZona", idzona);
cs.setString("idUsuario", idusuario);
final java.sql.Date fechaActual = new java.sql.Date(fecha.getTime());

cs.setDate("fecha", fechaActual);

// Registramos los parametro de salida OUT
cs.registerOutParameter("error", java.sql.Types.VARCHAR);

// Ejecutamos
cs.execute();.....

El mapping del proc es:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="es.cne.everest.hibernate.dto">

<class name="TrazaWebProc" table="TA_TRAZA_WEB" >
<id name="idTraza" column="ID_TRAZA" type="java.lang.Integer" />
<property name="idZona" column="ID_ZONA" generated="never" lazy="false" type="string"/>
<property name="idUsuario" column="ID_USUARIO" generated="never" lazy="false" type="string"/>
<property name="fechatraza" column="FECHA_TRAZA" generated="never" lazy="false" type="java.sql.Date"/>
<sql-update callable="true">{call insertTraza (?,?, ?, ?)}</sql-update>
</class>

</hibernate-mapping>

Y el proc es:

FUNCTION insertTraza (idTraza in number, idZona IN varchar2, idUsuario IN VARCHAR2, fecha IN Date)
RETURN varchar2 IS
strError VARCHAR2(1000);
BEGIN
insert into TA_TRAZA_WEB (ID_Traza,ID_ZONA,ID_USUARIO,FECHA_TRAZA) VALUES (idTraza, idZona, idUsuario,fecha );
EXCEPTION
WHEN OTHERS THEN
strError := 'ERROR ' || SQLERRM;
RETURN strError;
RAISE;
END insertTraza;

¿Dónde está el fallo?
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

Problema con procedimientos almacenados

Publicado por Mario (1 intervención) el 31/10/2013 22:35:21
Debes estar seguro de que si empiezas a poner los procedimientos con números (indices) debes también llamarlos con números. Eso se refiere al Ordinal y Named Binding
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