Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
%COALESCE
Syntax
%COALESCE(expr1, expr2, ...)
Description
Parmetros
expr1. . .exprn
Especifique las expresiones para verificar.
Note.
No puede especificar parmetros de enlace utilizando estas expresiones.
Ejemplo
El siguiente ejemplo usa la tabla PRODUCT_INFO para organizar una venta de liquidacin de
productos. Da un 10 por ciento de descuento a todos los productos con un precio de lista. Si no
hay un precio de lista, el precio de venta es el precio mnimo. Si no hay un precio mnimo, el precio
de venta es 10.
//
%COLESCE(0.10*list_price, min_price, 10) "Sale"
//
SELECT product_id, list_price, min_price, %COLESCE(0.9*list_price,
min_price, 10) "Sale"
from PRODUCT_INFO
where SUPPLIER_ID = 6009;
%Concat
Syntax
string1 %Concat string2
Description
En tiempo de ejecucin, la variable% Concat meta-SQL se reemplaza por el operador de
concatenacin de cadenas apropiado para el sistema de administracin de bases de datos
relacionales (RDBMS) que se est utilizando. Por ejemplo, en DB2, la variable% Concat meta-SQL
se reemplaza con CONCAT, mientras que en Sybase se reemplaza con un +
Esta variable meta-SQL es compatible con las mismas limitaciones que el operador de
concatenacin nativo para el RDBMS donde se est ejecutando el meta-SQL. Por ejemplo,
algunas plataformas le permiten concatenar una cadena con un valor numrico; otros marcan esto
como un error. PeopleTools no intenta verificar ni convertir los tipos de datos de ninguno de los
operandos.
Example
SELECT 'A' %Concat 'B' FROM PS_INSTALLATION. . .
Description
El constructo% EffDtCheck se expande en una subconsulta de fecha efectiva adecuada para una
clusula Where. El valor de as_of_date se ajusta automticamente en% DateIn a menos que
as_of_date ya est incluido en% DateIn o se refiera a otras columnas de la base de datos.
%EffDtCck solo funciona con fechas efectivas. No toma en cuenta los nmeros de secuencia
efectivos (EFFSEQ). Tampoco hace la comprobacin de estado efectivo (EFF_STATUS).
Parmetros
Nombre de Especifique el nombre del registro para usar como el registro en la verificacin de
Registro fecha efectiva. Esto puede ser una variable de vinculacin, un objeto de registro o
un nombre de registro en la forma recname. No puedes especificar un
REGISTRO. recname, un nombre de registro entre comillas o un nombre de tabla.
Note. Si especifica una variable de vinculacin, debe hacer referencia a un
objeto de registro, no a una variable de cadena.
Ejemplo
La siguiente es una muestra de cdigo genrico:
SELECT. . .
FROM. . .
WHERE %EffDtCheck(recordname correlation_id, as_of_date)
El cdigo de ejemplo se resuelve en el siguiente:
SELECT . . .
FROM. . .
WHERE correlation_id.EFFDT = (SELECT MAX(EFFDT) FROM recordname
WHERE recordname.KEYFIELD1 = correlation_id.KEYFIELD1
AND recordname.KEYFIELD2 = correlation_id.KEYFIELD2
AND. . .
AND recordname.EFFDT <= %DATEIN(as_of_date))
En el siguiente ejemplo, Y Fecha tiene el valor de 01/02/1998. El objeto de ejemplo y Rec tiene un
campo de clave EFFECT.
Descripcin
La construccin% InsertSelect meta-SQL genera una instruccin Insert con una instruccin Select.
No genera una declaracin From. Debe especificar los registros de seleccin antes de especificar
campos de anulacin.
La lista Insertar columna se compone de todos los campos en el insert_recname especificado, con
la excepcin de los campos LongChar o Image.
Note. Debido a la forma en que se manejan los valores largos (campos LongChar e Imagen) en las
diversas plataformas de bases de datos para las instrucciones Insert, todos los valores largos en
insert_recname se omiten en la instruccin Insert insertada. Esto implica que estos campos se
deben definir de tal manera que permitan valores nulos.
Para cada campo que especifique, la lgica de coincidencia descrita en la lista anterior no se
realiza. En cambio, el valor que especifique despus del signo igual se utiliza para ese campo en la
lista de seleccin real. Utilice esta tcnica para permitir que PeopleTools o PeopleSoft Application
Engine manejen la mayora de los campos en el registro, al tiempo que especifica algunos de ellos
explcitamente. Adems, puede usar override_field para especificar funciones agregadas como
Sum, Max, etc.
Note. Este meta-SQL no est implementado para COBOL.
Parametros
DISTINCT Especifique si la instruccin Select que se genera debe contener una clusula
Distinct.
insert_recname Especifique el nombre del registro que se va a insertar. Debe especificar un
nombre de registro, no RECORD. recname, un nombre de registro entre comillas,
una variable de enlace o un nombre de tabla.
Ejemplo
Aqu hay un ejemplo bsico:
%InsertSelect(AE_SECTION_TBL, AE_STEP_TBL S, AE_SECTION_TYPE = '
')
FROM PS_AE_STEP_TBL S, PS_AS_STMT_TBL T
WHERE. . .
El cdigo de ejemplo se resuelve en el siguiente:
INSERT INTO PS_AE_SECTION_TBL (AE_APPLID, AE_SECTION,. . .,
AE_SECTION_TYPE)
SELECT S.AE_APPL_ID, S.AE_SECTION, . . . ' '
FROM PS_AE_STEP_TBL S, PS_AS_STMT_TBL T
WHERE. . .
En el siguiente ejemplo, tiene una tabla temporal, PS_MY_TEMP, que se basa en una combinacin
entre otras dos tablas, PS_MY_TABLE1 y PS_MY_TABLE2:
%InsertSelect(MY_TEMP, MY_TABLE1, MY_TABLE2 T2)
FROM PS_MY_TABLE1 T1, PS_MY_TABLE2 T2
WHERE %Join(COMMON_KEYS, MY_TABLE1 T1, MY_TABLE2 T2) . . .
Este cdigo se resuelve en:
INSERT INTO PS_MY_TEMP (FIELD1, FIELD2 . . .)
SELECT T2.FIELD1, T2.FIELD2, . . .
FROM PS_MY_TABLE1 T1, PS_MYTABLE2 T2
WHERE T1.FIELD1 = T2.FIELD1
AND T1.FIELD2 = T2.FIELD2 . . .
El siguiente ejemplo crea una declaracin Select distinta.
%InsertSelect(DISTINCT, MY_TABLE, TABLE1, TABLE2 T2)
FROM PS_TABLE1 T1, PS_TABLE2 T2
WHERE %Join(COMMON_KEYS, TABLE1 T1, TABLE2 T2) . . .
Este cdigo se resuelve en:
INSERT INTO PS_MYTABLE (FIELD1, FIELD2 . . .)
SELECT DISTINCT T2.FIELD1, T2.FIELD2, . . .
FROM PS_TABLE1 T1, PS_TABLE2 T2
WHERE T1.FIELD1 = T2.FIELD1
AND T1.FIELD2 = T2.FIELD2 . . .
%InsertValues
Syntax
%InsertValues(recname)
Description
El constructo meta-SQL %InsertValues produce una lista separada por comas de los valores de
campo no nulos del registro. El procesamiento de entrada se aplica a los campos de las siguientes
maneras:
Si el campo es una fecha, una hora o un tipo de datos DateTime, su valor se ajusta
automticamente en %Datein, %TimeIn o %DateTimeIn, respectivamente.
Si el campo es una cadena, su valor se envuelve automticamente entre comillas.
Si el campo tiene un valor nulo, no est incluido en la lista.
Note. Esta construccin meta-SQL solo se puede usar en programas PeopleCode, no en acciones
SQL de Application Engine. Adems, esta construccin meta-SQL no est implementada para
COBOL.
Parametros
recname Especifique el nombre del registro que se utilizar para insertar. Esto puede ser una
variable de vinculacin, un objeto de registro o un nombre de registro en la forma
recname. No puede especificar un RECORD.recname, un nombre de registro entre
comillas o un nombre de tabla.
Example
Aqu hay un ejemplo:
SQLExec("Insert into TABLE (%List(NonNull_Fields, :1)) values
(%InsertValues(:1))", &Rec);
This example code is expanded into:
"Insert into TABLE (FNUM, FCHAR, FDATE) values (27, 'Y',
%datein('1989-11-27'))"
%NumToChar
Syntax
%NumToChar(Number)
Descripcion
Use la construccin% NumToChar para transformar un valor numrico en un valor de carcter. Los
espacios se recortan de Nmero.
Parametros
Number Especifique el nmero para convertir a un valor de carcter. Los nmeros firmados, as
como los decimales, son aceptables.
%DateDiff
Syntax
%DateDiff(date_from, date_to)
Description
La funcin meta-SQL DateDiff devuelve un nmero entero que representa la diferencia entre dos
fechas en nmero de das.
Example
%DateDiff(%DateIn('1997-01-01'), %DateIn("1966-06-30'))