URGENTE To_number - cast(as number) no me funciona
Publicado por Julián Castaño (1 intervención) el 15/02/2010 15:06:47
Buenos dias.
Tengo el siguiente problema.
Necesito enlazar dos tablas, para lo cual uso un inner join, los campos por los cuales voy a realizar el inner join son varchar2 de 7 bytes. Tengo que convertir estos a numericos para poder realizar el inner, ya que en una tabla aparecen de la siguiente manera 033 y en otra 33 y como ya sabran en varchar esto nunca va a ser igual; por lo tanto he realizado un cast y no me ha funcionado, he realizado un To_number y tampoco. de la misma manera he cambiado el to_number a integer, float y demas campos numericos que se me han ocurrido pero nada.
El query con el que estoy realizando la prueba es el siguiente:
SELECT ID_ACTIVIDAD, NOMBRE FROM TB_ACTIVIDADES
INNER JOIN XTB_RPT_DETALLE ON TO_NUMBER(TB_ACTIVIDADES.CODIGOOPERACION) = TO_NUMBER(XTB_RPT_DETALLE.COD_OPERACION)
WHERE CAST(COD_OFICNA AS NUMBER)=3
si quito los To_number, o cast si lo tuviera. me funciona, pero como se han de imaginar el resultado que obtengo no es el esperado, ya que la comparacion no es correcta.
El ERROR que obtengo al ejecutar el query, asi como esta es el siguiente:
ORA - 01722 : NUMERO NO VALIDO
01722.00000 "INVALID NUMBER"
Esto es algo con caracter urgente, asi que si me pudiesen colaborar se los agradeceria enormemente.
Tengo el siguiente problema.
Necesito enlazar dos tablas, para lo cual uso un inner join, los campos por los cuales voy a realizar el inner join son varchar2 de 7 bytes. Tengo que convertir estos a numericos para poder realizar el inner, ya que en una tabla aparecen de la siguiente manera 033 y en otra 33 y como ya sabran en varchar esto nunca va a ser igual; por lo tanto he realizado un cast y no me ha funcionado, he realizado un To_number y tampoco. de la misma manera he cambiado el to_number a integer, float y demas campos numericos que se me han ocurrido pero nada.
El query con el que estoy realizando la prueba es el siguiente:
SELECT ID_ACTIVIDAD, NOMBRE FROM TB_ACTIVIDADES
INNER JOIN XTB_RPT_DETALLE ON TO_NUMBER(TB_ACTIVIDADES.CODIGOOPERACION) = TO_NUMBER(XTB_RPT_DETALLE.COD_OPERACION)
WHERE CAST(COD_OFICNA AS NUMBER)=3
si quito los To_number, o cast si lo tuviera. me funciona, pero como se han de imaginar el resultado que obtengo no es el esperado, ya que la comparacion no es correcta.
El ERROR que obtengo al ejecutar el query, asi como esta es el siguiente:
ORA - 01722 : NUMERO NO VALIDO
01722.00000 "INVALID NUMBER"
Esto es algo con caracter urgente, asi que si me pudiesen colaborar se los agradeceria enormemente.
Valora esta pregunta
0