Para los que estamos acostumbrados a utilizar el operador decode del SQL de Oracle sorprende bastante que no esté incluída en la sintaxis que se puede utilizar dentro del generador de expresiones de Oracle Warehouse Builder.
Pero todo tiene solución. Si para un campo se quiere seleccionar un valor en función del contenido de otro o más campos, se puede utilizar el objeto EXPRESSION, conectar en la entrada todos los campos implicados, y en la expresión del campo de salida olvidarnos del DECODE y utilizar en su lugar un CASE WHEN ..., que sí está soportado.
Por ejemplo:
CASE WHEN entrada1 = 0 THEN 'Falso'
WHEN entrada2 = 1 THEN 'Cierto'
ELSE 'Indefinido'
END
- Versión para impresión
- Inicie sesión para enviar comentarios
Decode en OWB
Subido por Alfonso (no verificado) el 2 Abril, 2009 - 18:29
Hola, me encuentro utilizando OWB, y para resolver el problema de divisiones por cero utilizo Decode en una expresion, tal como sigue
DECODE(INGRP1.ORG2,0,NULL,INGRP1.ORG1/INGRP1.ORG2)
Saludos
Ya se puede utilizar el DECODE?
Subido por Carlos el 2 Abril, 2009 - 22:48
En respuesta a Decode en OWB por Alfonso (no verificado)
Pues en teoría no te debería funcionar. Yo lo probé con la versión 10.2 de Warehouse Builder y la expresión daba error hasta que lo cambié por el CASE, y se que en versiones anteriores pasaba lo mismo. Puede ser que tu estés utilizando una versión superior? A lo mejor en la 11 por fin se puede utilizar el Decode..
Decode
Subido por Alfonso (no verificado) el 8 Abril, 2009 - 18:42
En respuesta a Ya se puede utilizar el DECODE? por Carlos
Hola, realmente al realizar la verificación de la expresión Decode envia error, pero si omites esta parte y ejecutas tu maping funcionará correctamente.
(yo solo soy un usuario, descubrí esto a "prueba y error" jajajaja)
Saludos
Vaya con el validador de expresiones de OWB..
Subido por Carlos el 9 Abril, 2009 - 17:11
En respuesta a Decode por Alfonso (no verificado)
Bueno, pues gracias a tu aportación ya tenemos 2 maneras de solventar el problema, utilizar un CASE WHEN, o utilizar el DECODE y pasar del error que nos da el validador, pero asegurándonos de que la expresión esté bien escrita!
SI funciona
Subido por Jorge Luna (no verificado) el 26 May, 2009 - 21:11
En respuesta a Ya se puede utilizar el DECODE? por Carlos
Hola.. yo trabajo de OWB hace tiempo y tiene ciertas cosas o mañas. El decode SI funciona cuando utilizas una expresion aunque si clickeas en la opcion VALIDAR te da un error o warning..
En resumen tiene que usarlo sin validarlo o bien no darle importancia.. pasa lo mismo con trunc y no me acuerdo cual otra sentencia