Problema con procedimiento

Ver el tema anterior Ver el tema siguiente Ir abajo

Problema con procedimiento

Mensaje  Julio.T el Miér 12 Mayo 2010, 16:57

Hola a tod@s,

Estoy creando una correspondencia en la que he puesto un procedimiento con un proceso de correspondencia previa. El caso es que si ejecuto directamente el procedimiento (por ejemplo desde el SQLDeveloper) no da ningún error y todo funciona correctamente. Pero al ejecutar la correspondencia aparece un error: ORA-01722: invalid number.
Alguien sabe qué puede estar pasando??

Saludos y gracias de antemano

Julio.T

Cantidad de envíos : 106
Localización : Zaragoza
Fecha de inscripción : 26/02/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Problema con procedimiento

Mensaje  lleffer el Miér 12 Mayo 2010, 17:49

revisa esto...talvez te sirva

http://oraclebi.adiante.es/trucos-f1/invalid-number-al-utilizar-to_number-numero-valido-t13.htm

saludos

lleffer

Cantidad de envíos : 14
Localización : santiago
Fecha de inscripción : 08/04/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: Problema con procedimiento

Mensaje  Julio.T el Miér 12 Mayo 2010, 18:07

Dos cosas:

- No puedo aplicar eso porque no tengo un formato de
número constante, es decir, tengo decimales, naturales, de dos cifras,
de cuatro...
- El procedimiento está creado en una base de datos diferente.

Julio.T

Cantidad de envíos : 106
Localización : Zaragoza
Fecha de inscripción : 26/02/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Problema con procedimiento

Mensaje  lleffer el Miér 12 Mayo 2010, 18:09

puedes poner el procedimiento para verlo porque asi es difícil...saber
que es lo que pasa...

saludos ....

lleffer

Cantidad de envíos : 14
Localización : santiago
Fecha de inscripción : 08/04/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: Problema con procedimiento

Mensaje  Julio.T el Miér 12 Mayo 2010, 18:26

Básicamente en el procedimiento se hace un merge. Uno de estos campos es un varchar que convertimos en number. Esto funciona correctamente si lo ejecutamos desde sqldeveloper. Pero al ejecutarlo desde owb falla.

Julio.T

Cantidad de envíos : 106
Localización : Zaragoza
Fecha de inscripción : 26/02/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Problema con procedimiento

Mensaje  Julio.T el Jue 13 Mayo 2010, 13:53

Después de cuatro días ya hemos conseguido solucionar el problema!!!
La solución es cambiar el idioma de la sesión, del formato de fechas y de números. Esto se debe porque la base de datos de origen y de destino tienen distinto juego de caracteres e idioma. Lo que hago es ejecutar un procedimiento al comienzo de la sesión con este contenido:

create or replace PROCEDURE CAMBIA_IDIOMA AS

cur NUMBER;
status NUMBER;
BEGIN
cur := dbms_sql.open_cursor;
dbms_sql.parse(cur, 'alter session set NLS_LANGUAGE=SPANISH', dbms_sql.native);
status := dbms_sql.execute(cur);
dbms_sql.parse(cur, 'alter session set NLS_DATE_LANGUAGE=SPANISH', dbms_sql.native);
status := dbms_sql.execute(cur);
dbms_sql.parse(cur, 'ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '',.''', dbms_sql.native);
status := dbms_sql.execute(cur);

END CAMBIA_IDIOMA;

De esta forma ya no tiene problemas para "traducir" los números.
Espero que os sirva de ayuda

Julio.T

Cantidad de envíos : 106
Localización : Zaragoza
Fecha de inscripción : 26/02/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Problema con procedimiento

Mensaje  Contenido patrocinado Hoy a las 14:51


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.