Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Error PL contra Oracle

Estas en el tema de Error PL contra Oracle en el foro de Oracle en Foros del Web. Buenas a todos, A ver si alguien puede ayudarme con este problemilla que me esta desquiciando. Os pongo en situación. Tengo una función que llama ...
  #1 (permalink)  
Antiguo 16/11/2009, 02:40
 
Fecha de Ingreso: julio-2008
Mensajes: 30
Antigüedad: 16 años, 4 meses
Puntos: 1
Error PL contra Oracle

Buenas a todos,

A ver si alguien puede ayudarme con este problemilla que me esta desquiciando. Os pongo en situación.

Tengo una función que llama a un PL de Oracle, como parametros de entrada recibe algunos varchar y numerics y devuelve todo varchars. El caso es que he llegado a la conclusión de que los adNumeric como parametros de entrada no le gustan a Oracle pues me devuelve el siguiente error:

La operación de multiples pasos de OLE DB genero errores. Compruebe los valores de estado de OLE DB si es posible. No se realizo ningun trabajo

Como prueba he quitado los valores numericos y los he sustituido por varchar en cuyo caso el PL funciona correctamente. Tambien si en los valores numericos paso 0 como valor funciona correctamente. Os dejo la cabecera del PL asi como la creación de parametros de entrada.


Cabecera PL:

CREATE OR REPLACE PROCEDURE SINF_P_DESC_DATOS (
pi_DNICIF in varchar2:=null,--DNI/CIF
pi_POLIZA in varchar2:=null,--numero de la poliza
pi_siniestro in number,--numero de siniestro
pi_idRamo in number,--indica el id de ramo
pi_expediente in number,--indica el número de expediente
pi_metadatos in number,--0 confirmacion ,1 metadatos

pi_equipo in varchar2,
po_nombre out varchar2,--para dni/cif
po_apellido1 out varchar2,--para dni/cif
po_apellido2 out varchar2,--para dni/cif
po_dniTomador out varchar2,--para poliza y siniestro
po_nombreTomador out varchar2,--para poliza y siniestro
po_apellido1Tomador out varchar2,--para poliza y siniestro
po_apellido2Tomador out varchar2,--para poliza y siniestro
po_nifAsegurado out varchar2,--para poliza y siniestro
po_nombreAsegurado out varchar2,--para poliza y siniestro
po_apellido1Asegurado out varchar2,--para poliza y siniestro
po_apellido2Asegurado out varchar2,--para poliza y siniestro
po_Ramo out varchar2,--para poliza
po_Sucursal out varchar2,--para poliza y siniestro
po_CodigoAgente out varchar2,--para poliza
po_FechaEmision out varchar2,--para poliza
po_Matricula out varchar2,--para siniestros y poliza
po_numPoliza out varchar2,--para siniestros
po_FechaSiniestro out varchar2,--para siniestros
po_matriImplicadas out varchar2,--para siniestros
po_Causantes out varchar2,--para siniestros
po_Lesionados out varchar2,--para siniestros
po_perjudicados out varchar2,--para siniestros
po_DireccionRiesgo out varchar2,--para siniestros
po_existe out varchar2,-- (N no existe S si existe)
po_mensaje out varchar2

)


Creación parametros entrada:


cmd.Parameters.Append cmd.CreateParameter("pi_DNICIF", adVarChar, adParamInput, 20, Null)
cmd.Parameters.Append cmd.CreateParameter("pi_POLIZA", adVarChar, adParamInput, 20, Null)
cmd.Parameters.Append cmd.CreateParameter("pi_siniestro", adNumeric, adParamInput, , 55555)

cmd.Parameters.Append cmd.CreateParameter("pi_idRamo", adNumeric, adParamInput, , 66)

cmd.Parameters.Append cmd.CreateParameter("pi_expediente", adNumeric, adParamInput, , 55)

cmd.Parameters.Append cmd.CreateParameter("pi_metadatos", adNumeric, adParamInput, , 0)

cmd.Parameters.Append cmd.CreateParameter("pi_equipo", adVarChar, adParamInput, 20, "DM")



Si alguien puede explicarme por qué falla con los numericos o como hacer que funcione se lo agradeceria.

Muchas gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:45.