Cómo: Referencia: |
La función DB_EXPR inserta una expresión nativa de SQL exactamente como se introdujo en el SQL nativo, generado para una solicitud de lenguaje FOCUS o SQL.
La función DB_EXPR puede usarse en un comando DEFINE, un DEFINE en un archivo máster, una cláusula WHERE, un comando FILTER FILE, un filtro en un archivo máster o en una declaración de SQL. Puede usarla en un comando COMPUTE si la solicitud es de tipo agregación (utiliza un comando SUM, WRITE o ADD) y sólo tiene un comando de visualización. La expresión debe devolver un valor único.
DB_EXPR(native_SQL_expression)
donde:
Es una expresión parcial, nativa de SQL, válida para ser insertada en el SQL generado por la solicitud. La cadena SQL debe tener comillas dobles (") alrededor de cada referencia de campo, a menos que la función se esté usando en un DEFINE con una frase WITH.
La siguiente solicitud de TABLE, basada en el origen de datos WF_RETAIL, usa la función DB_EXPR en el comando COMPUTE para llamar a dos funciones de DB2. Llama a la función BIGINT para convertir los ingresos cuadrados en un tipo de datos BIGINT y, a continuación, usa la función CHAR para convertir ese valor en alfanumérico.
TABLE FILE WF_RETAIL SUM REVENUE NOPRINT AND COMPUTE BIGREV/A31 = DB_EXPR(CHAR(BIGINT("REVENUE" * "REVENUE") ) ) ; AS 'Alpha Square Revenue' BY REGION ON TABLE SET PAGE NOPAGE END
WF_RETAIL es un origen de datos de ejemplo que se crea pulsando con el botón derecho sobre una aplicación, en la Consola Web del Servidor de informes, y seleccionando Nuevo, Ejemplos en el menú de contexto.
El seguimiento muestra que la expresión de la función DB_EXPR ha quedado insertada en la declaración de DB2 SELECT:
SELECT
T11."REGION",
SUM(T1."Revenue"),
((CHAR(BIGINT( SUM(T1."Revenue") * SUM(T1."Revenue")) ) ))
FROM
wrd_fact_sales T1,
wrd_dim_customer T5,
wrd_dim_geography T11
WHERE
(T5."ID_CUSTOMER" = T1."ID_CUSTOMER") AND
(T11."ID_GEOGRAPHY" = T5."ID_GEOGRAPHY")
GROUP BY
T11."REGION "
ORDER BY
T11."REGION "
FOR FETCH ONLY;
END
La salida es:
WebFOCUS |