next up previous contents index
Next: Invocando a otra función. Up: Aserciones Previous: Aserciones   Índice General   Índice de Materias

Asignación.

La asignación de un valor a una variable, renglón o campo de un registro, se escribe como

identifier := expression;

Si el tipo de dato resultante de la expresión no equivale al tipo de dato de la variable, o si la variable tiene un tamaño distinto, el valor resultante será ajustado implícitamente por el compilador de PL/pgSQL utilizando el tipo resultante y el tipo definido para la variable. Nótese que esto podría potencialmente generar errores en tiempo de ejecución por parte de las funciones de conversión.

Una asignación de una selección completa en un registro o renglón puede ser hecho de la siguiente manera

SELECT expresiones INTO destino FROM ...;

destino puede ser un registro, una variable reglón o una lista separada por comas de variables y campos de registro o renglón.

Si un renglón o lista de variables es empleada como destino, los valores deberán coincidir exactamente con la estructura del destino o un error en tiempo de ejecución ocurrirá. La palabra reservada FROM puede ser seguida por cualquier calificación válida, agrupamiento, ordenamiento, etc., que sea válida en una aserción SELECT.

Existe una variable especial llamada FOUND de tipo booleano que puede ser empleada inmediatamente después de un SELECT INTO para verificar que la asignación tuvo éxito.

SELECT * INTO myrec FROM EMP WHERE empname = myname;
IF NOT FOUND THEN
    RAISE EXCEPTION ''El empleado % no fue encontrado'', myname;
END IF;

Si la selección regresa varios renglones, sólo el primero será asignado a los campos destino, el resto será silenciosamente ignorado.


next up previous contents index
Next: Invocando a otra función. Up: Aserciones Previous: Aserciones   Índice General   Índice de Materias
Ismael Olea 2001-04-21