Función Cast en Informix
Para actualizar un Datamart tuve que modificar unos paquetes de hace un par de años.
Uno de los problemas consistía en la comparación de campos similares per con distinto con distinta definición de tipos en tablas distintas.
1. En la primera tabla el campo definido como clave primaria en una tabla era de tipo integer.
2. En la segunda tablas el campo sujeto a la comparación era de tipo char(10).
Informix a través de una conexión de ODBC funcionaba bien hasta que en los datos de la primera tabla se colaron valores basura (claro por el tipo char).
La conexión requeria comparar los campos con algún tipo de cast. Preguntando a mis colegas me encontré con dos soluciones :
1. tabla1.campo_pk = tabla2.campo_pk::varchar(10)
2. tabla1.campo_pk = cast(tabla2.campo_pk as varchar(10)
En ambos casos funciona y de este modo raro se podían colar todos los valores basura entre los datos que permitían cargar las dimensiones necesarias.
Por otra parte para el sistema OLTP se ha sugerido modificar la validación de valores para evitar datos basura en el campo de tipo caracter.
Una cosa no me quedó clara en que versión de Informix venía cada una de las opciones.
Uno de los problemas consistía en la comparación de campos similares per con distinto con distinta definición de tipos en tablas distintas.
1. En la primera tabla el campo definido como clave primaria en una tabla era de tipo integer.
2. En la segunda tablas el campo sujeto a la comparación era de tipo char(10).
Informix a través de una conexión de ODBC funcionaba bien hasta que en los datos de la primera tabla se colaron valores basura (claro por el tipo char).
La conexión requeria comparar los campos con algún tipo de cast. Preguntando a mis colegas me encontré con dos soluciones :
1. tabla1.campo_pk = tabla2.campo_pk::varchar(10)
2. tabla1.campo_pk = cast(tabla2.campo_pk as varchar(10)
En ambos casos funciona y de este modo raro se podían colar todos los valores basura entre los datos que permitían cargar las dimensiones necesarias.
Por otra parte para el sistema OLTP se ha sugerido modificar la validación de valores para evitar datos basura en el campo de tipo caracter.
Una cosa no me quedó clara en que versión de Informix venía cada una de las opciones.
Labels: cast Informix, DTS con Informix