Sentencia SET variable

La sentencia SET variable asigna valores a variables.

La sentencia no está bajo el control de la transacción.

Invocación

Esta sentencia puede incorporarse en un programa de aplicación o emitirse de forma interactiva. Se trata de una sentencia ejecutable que puede prepararse de forma dinámica.

Autorización

Para hacer referencia a una variable de transición, los privilegios del ID de autorización del creador de activadores debe tener, como mínimo, una de las autorizaciones siguientes:
  • Privilegio UPDATE para las columnas a las que se hace referencia en la parte izquierda de la asignación y privilegio SELECT para las columnas a las que se hace referencia en la parte derecha.
  • Privilegio CONTROL para la tabla (tabla sujeto del activador)
  • Autorización DATAACCESS
Si se hace referencia a una variable global en la parte derecha de la sentencia de asignación, los privilegios del ID de autorización de la sentencia deben incluir una de las autorizaciones siguientes:
  • el privilegio READ sobre la variable global que no está definida en un módulo
  • el privilegio EXECUTE sobre el módulo de la variable global que está definida en un módulo
Si se asigna un valor a una variable global en la parte izquierda de la sentencia de asignación, los privilegios del ID de autorización de la sentencia deben incluir una de las autorizaciones siguientes:
  • el privilegio WRITE sobre la variable global que no está definida en un módulo
  • el privilegio EXECUTE sobre el módulo de la variable global que está definida en un módulo

Para ejecutar esta sentencia con una selección-completa-fila como la parte derecha de la asignación, los privilegios del ID de autorización de la sentencia deben incluir los privilegios necesarios para ejecutar la selección-completa-fila. Consulte la sección Autorización en "Consultas de SQL".

Para ejecutar esta sentencia con un constructor-valor-cursor que utiliza una sentencia-select, los privilegios del ID de autorización de la sentencia deben incluir los privilegios necesarios para ejecutar la sentencia-select. Consulte la sección Autorización en "Consultas de SQL".

Sintaxis

Leer el esquema de sintaxisOmitir el esquema de sintaxis visualSET,variable-destino=expresiónNULLDEFAULT(,variable-destino)=(,expresiónNULLDEFAULT)(seleccióncompleta-fila)nombre-variable-booleana=condición-búsquedaTRUEFALSENULLnombre-variable-matriz[índice-matriz]=expresiónNULLvariable-cursor-destino=nombre-variable-cursorconstructor-valor-cursorNULLvariable-fila-destino=(,expresiónNULL)(seleccióncompleta-fila)expresión-filaNULL
variable-destino
Leer el esquema de sintaxisOmitir el esquema de sintaxis visualnombre-variable-globalvariable-lenguaje-principalmarcador de parámetronombre-parámetro-SQLreferencia-camponombre-variable-SQLnombre-variable-transición..nombre-atributo
referencia-campo
Leer el esquema de sintaxisOmitir el esquema de sintaxis visualnombre-variable-fila.nombre-campo
constructor-valor-cursor
Leer el esquema de sintaxisOmitir el esquema de sintaxis visual ASENSITIVEINSENSITIVE CURSOR (,declaración-parámetro) posibilidad de mantenimientoFOR sentencia-selectnombre-sentencia1
declaración-parámetro
Leer el esquema de sintaxisOmitir el esquema de sintaxis visualnombre-parámetrotipo-datos
tipo-datos
Leer el esquema de sintaxisOmitir el esquema de sintaxis visualtipo-incorporadotipo-datos-parámetro-ancladonombre-tipo-diferenciado
tipo-incorporado
Leer el esquema de sintaxisOmitir el esquema de sintaxis visualSMALLINTINTEGERINTBIGINTDECIMALDECNUMERICNUM(5,0)( entero,0, entero)FLOAT(53)( entero)REALDOUBLEPRECISIONDECFLOAT(34)(16)CHARACTERCHAR(1)( enteroOCTETSCODEUNITS32)VARCHARCHARACTERCHARVARYING( enteroOCTETSCODEUNITS32)FOR BIT DATA2CLOBCHARACTERCHARLARGE OBJECT(1M)( enteroKMGOCTETSCODEUNITS32)GRAPHIC(1)( enteroCODEUNITS16CODEUNITS32)VARGRAPHIC( enteroCODEUNITS16CODEUNITS32)DBCLOB(1M)( enteroKMGCODEUNITS16CODEUNITS32)BINARY(1)( entero)VARBINARYBINARY VARYING(entero)BLOBBINARY LARGE OBJECT(1M)( enteroKMG)DATETIMETIMESTAMP(6)(entero)XML
tipo-datos-parámetro-anclado
Leer el esquema de sintaxisOmitir el esquema de sintaxis visualANCHORDATA TYPE TO nombre-variablenombre-tabla.nombre-columna
posibilidad de mantenimiento
Leer el esquema de sintaxisOmitir el esquema de sintaxis visualWITHOUT HOLDWITH HOLD
variable-fila-destino
Leer el esquema de sintaxisOmitir el esquema de sintaxis visualnombre-variable-globalmarcador parámetronombre-parámetro-SQLnombre-variable-SQLespecificación-elemento-matriz-filareferencia-campo-fila3
Notas:
  • 1 El nombre-sentencia no se puede especificar si se ha especificado la declaración-parámetro.
  • 2 La cláusula FOR BIT DATA se puede especificar en cualquier orden con las restricciones de columna siguientes. La cláusula FOR BIT DATA no se puede especificar con unidades de serie CODEUNITS32 (SQLSTATE 42613).
  • 3 El tipo de datos debe ser un tipo de fila.

Descripción

variable-destino
Identifica la variable de destino de la asignación. Una variable-destino que represente la misma variable no debe especificarse más de una vez (SQLSTATE 42701).
nombre-variable-global
Identifica la variable global que es el sujeto de la asignación. El nombre-variable-global debe identificar una variable global que exista en el servidor actual (SQLSTATE 42704).
variable-lenguaje-principal
Identifica la variable del lenguaje principal que es el sujeto de la asignación.
marcador-parámetro
Identifica el marcador de parámetro que es el sujeto de la asignación.
nombre-parámetro-SQL
Identifica el parámetro que es el sujeto de la asignación. El parámetro se debe especificar en la declaración-parámetro de la sentencia CREATE PROCEDURE.
referencia-campo
Identifica el campo de un valor de tipo de fila que es el destino de la asignación.
nombre-variable-fila
El nombre de una variable con un tipo de datos que es un tipo de fila.
nombre-campo
El nombre de un campo dentro de un tipo de fila.
nombre-variable-SQL
Identifica la variable de SQL que es el sujeto de la asignación. Las variables de SQL se deben declarar antes de utilizarlas.
nombre-variable-transición
Identifica la columna que se debe actualizar en la fila de transición. Un nombre-variable-transición debe identificar una columna en la tabla sujeto de un activador, calificado opcionalmente por un nombre de correlación que identifique el nuevo valor (SQLSTATE 42703).
..nombre-atributo
Especifica el atributo de un tipo estructurado que está definido (esto se denomina asignación de atributos). El nombre-variable-SQL o nombre-variable-transición especificado debe definirse con un tipo estructurado definido por el usuario (SQLSTATE 428DP). El ..nombre-atributo debe ser un atributo del tipo estructurado (SQLSTATE 42703). Una asignación que no incluye la cláusula ..nombre-atributo se denomina asignación convencional.
expresión
Indica el nuevo valor del destino de la asignación. La expresión es cualquier expresión del tipo que se describe en el apartado "Expresiones". La expresión no puede incluir una función agregada salvo cuando aparece dentro de una selección completa escalar (SQLSTATE 42903). En el contexto de una sentencia CREATE TRIGGER, una expresión puede contener referencias a las variables de transición OLD y NEW. Las variables de transición debe calificarlas el nombre-correlación (SQLSTATE 42702).
NULL
Especifica el valor nulo. Si el destino de la asignación es una variable de fila, se asigna a cada campo el valor nulo. NULL no puede ser el valor en una asignación de atributos a menos que se convirtiera específicamente al tipo de datos del atributo (SQLSTATE 429B9).
DEFAULT
Especifica que se debe utilizar el valor por omisión.

En procedimientos SQL, la cláusula DEFAULT puede especificarse sólo para sentencias de SQL estático. La excepción es que la cláusula DEFAULT puede especificarse cuando la variable-destino es una variable global de una sentencia de SQL dinámico.

Si variable-destino es una columna, el valor insertado depende de cómo se haya definido la columna en la tabla.
  • Si la columna se ha definido utilizando la cláusula WITH DEFAULT, el valor se establece en el valor por omisión que se ha definido para la columna (consulte el apartado cláusula-valor-por-omisión en "ALTER TABLE").
  • Si se utiliza la cláusula IDENTITY para definir la columna, el gestor de bases de datos genera el valor.
  • Si la columna se ha definido sin especificar la cláusula WITH DEFAULT, la cláusula IDENTITY ni la cláusula NOT NULL, el valor es NULL.
  • Si la columna se ha definido utilizando la cláusula NOT NULL y:
    • No se utiliza la cláusula IDENTITY o
    • No se ha utilizado la cláusula WITH DEFAULT o
    • se ha utilizado la cláusula DEFAULT NULL
    la clave DEFAULT no se puede especificar para dicha columna (SQLSTATE 23502).
Si la variable-destino es una variable de SQL, el valor que se ha insertado es el valor por omisión, tal como se ha especificado o está implícito en la declaración de variable.

Si la variable-destino es una variable global, el valor que se ha insertado es el valor por omisión, tal como se ha especificado en la creación de la variable.

Si la variable-destino es una variable de SQL o un parámetro de SQL de un procedimiento de SQL, una variable del lenguaje principal o un marcador de parámetro, no puede especificarse la palabra clave DEFAULT (SQLSTATE 42608).

seleccióncompleta-fila
Una selección completa que devuelve una sola fila con el número de columnas correspondiente al número de variables de destino campos de la variable de fila especificados para la asignación. Los valores se asignan a cada campo o variable de destino correspondiente. Si la selección completa de fila da como resultado ninguna fila, se asignan valores nulos a las variables de destino de la lista o, en el caso de la asignación a una variable de fila, se asigna un valor nulo único. En el contexto de una sentencia CREATE TRIGGER, una selección-completa-fila puede contener referencias a las variables de transición OLD y NEW, que se deben calificar por su nombre-correlación para especificar qué variable de transición se debe utilizar (SQLSTATE 42702). Se devuelve un error si hay más de una fila en el resultado (SQLSTATE 21000).
nombre-variable-booleana
Identifica una variable o un parámetro de SQL o una variable global. La variable o el parámetro debe ser de tipo booleano (SQLSTATE 428H0). La sentencia SET se debe emitir dentro de una sentencia de SQL compuesto (compilado) (SQLSTATE 428H2).
condición-búsqueda
Condición de búsqueda cuyo resultado es verdadero, falso o desconocido. Se devuelve el resultado de desconocido como valor booleano NULL.
TRUE
Especifica el valor booleano TRUE.
FALSE
Especifica el valor booleano FALSE.
NULL
Especifica el valor booleano NULL.
nombre-variable-matriz
Identifica una variable de SQL, un parámetro de SQL o una variable global con tipo de matriz (SQLSTATE 428H0).
[índice-matriz]
Expresión que especifica qué elemento de la matriz será el destino de la asignación. Para una matriz común, el índice-matriz debe poderse asignar a INTEGER (SQLSTATE 22018 o 428H1). Su valor debe estar entre 1 y la cardinalidad máxima definida para la matriz y no puede ser el valor nulo (SQLSTATE 2202E).
Para una matriz asociativa, la expresión de índice de matriz se debe poder asignar al tipo de datos de índice de la matriz asociativa (SQLSTATE 22018 o 428H1) y no puede ser el valor nulo (SQLSTATE 2202E).
variable-cursor-destino
Identifica una variable de cursor. El tipo de datos de una variable-cursor-destino tiene que ser un tipo de cursor (SQLSTATE 42821).
nombre-variable-cursor
Identifica una variable de cursor del mismo tipo de cursor que la variable-cursor-destino.
constructor-valor-cursor
Un constructor-valor-cursor especifica la sentencia-select asociada con la variable de destino. La asignación de un constructor-valor-cursor a una variable de cursor define el cursor subyacente de esa variable de cursor.
ASENSITIVE o INSENSITIVE
Especifica si el cursor es sensible o insensible a los cambios. Consulte el apartado "DECLARE CURSOR" para obtener más información. El valor por omisión es ASENSITIVE.
ASENSITIVE
Especifica que el cursor debe ser todo lo sensible que sea posible para las inserciones, actualizaciones o supresiones realizadas en las filas subyacentes de la tabla de resultados, en función de cómo se haya optimizado sentencia-select. ASENSITIVE es el valor por omisión.
INSENSITIVE
Especifica que el cursor no debe contar con sensibilidad para las inserciones, actualizaciones o supresiones que se han realizado en las filas subyacentes de la tabla de resultados. Si se especifica INSENSITIVE, el cursor es de sólo lectura y la tabla de resultados se materializa al abrirse el cursor. Como resultado de ello, el tamaño de la tabla de resultados, el orden de las filas y los valores de cada fila no cambian tras abrirse el cursor. La sentencia SELECT no puede contener una cláusula FOR UPDATE, y el cursor no puede utilizarse para las actualizaciones o supresiones posicionadas.
(declaración-parámetro, ...)
Especifica los parámetros de entrada del cursor, incluido el nombre y el tipo de datos de cada parámetro. Sólo se pueden especificar parámetros de entrada con nombre si la sentencia-select también está especificada en el constructor-valor-cursor (SQLSTATE 428HU).
nombre-parámetro
Asigna un nombre al parámetro de cursor que se debe utilizar como variable de SQL dentro de la sentencia-select. El nombre no puede ser igual que ningún otro nombre de parámetro del cursor. Los nombres deben elegirse también evitando nombres de columna que se puedan utilizar en la sentencia-select, ya que los nombres de columna se resuelven antes que los nombres de parámetro.
tipo-datos
Especifica el tipo de datos del parámetro de cursor utilizado dentro de una sentencia-select. No se pueden especificar tipos estructurados ni tipos de referencia (SQLSTATE 429BB).
tipo-incorporado
Especifica un tipo de datos incorporado. Para obtener una descripción más completa de cada tipo de datos incorporado, consulte "CREATE TABLE".
tipo-datos-parámetro-anclado
Identifica otro objeto que se utiliza para determinar el tipo de datos del parámetro de cursor. El tipo de datos del objeto de anclaje se ve afectado por las mismas limitaciones que se aplican cuando se especifica el tipo de datos directamente.
ANCHOR DATA TYPE TO
Indica que se utiliza un tipo de datos anclados para especificar el tipo de datos.
nombre-variable
Identifica una variable de SQL local, un parámetro SQL o una variable global. El tipo de datos de la variable a la que se hace referencia se utiliza como tipo de datos para el parámetro de cursor.
nombre-tabla.nombre-columna
Identifica un nombre de columna de una tabla o vista existente. El tipo de datos de la columna se utiliza como tipo de datos para el parámetro de cursor.
nombre-tipo-diferenciado
Especifica el nombre de un tipo diferenciado. Si se especifica el nombre-tipo-diferenciado sin un nombre de esquema, el tipo diferenciado se resuelve buscando en los esquemas de la vía de acceso de SQL.
posibilidad de mantenimiento
Especifica si se impedirá que el cursor se cierre como consecuencia de una operación de confirmación. Consulte el apartado "DECLARE CURSOR" para obtener más información. El valor por omisión es WITHOUT HOLD.
WITHOUT HOLD
No impide que el cursor se cierre como consecuencia de una operación de confirmación.
WITH HOLD
Mantiene recursos en varias unidades de trabajo. Impide que el cursor se cierre como consecuencia de una operación de confirmación.
sentencia-select
Especifica la sentencia SELECT del cursor. Consulte el apartado "sentencia-select" para obtener más información. Si se incluye una declaración-parámetro en el constructor-valor-cursor, la sentencia-select no debe incluir ninguna variable de SQL local ni parámetros de SQL de rutina (SQLSTATE 42704).
nombre-sentencia
Especifica la sentencia-select preparada del cursor. Consulte el apartado "PREPARE" para obtener una explicación de las sentencias preparadas. La variable del cursor de destino no debe tener un tipo de datos que sea un tipo de cursor definido por el usuario con tipo firme (SQLSTATE 428HU). No se deben especificar parámetros de entrada con nombre en el constructor-valor-cursor si se especifica un nombre-sentencia (SQLSTATE 428HU).
variable-fila-destino
Identifica la variable de fila de destino de la asignación. El tipo de datos debe ser un tipo de fila.
expresión-fila
Especifica el nuevo valor de fila para el destino de la asignación. Puede ser cualquier expresión de fila del tipo descrito en "Expresión de fila". El número de campos de la fila debe coincidir con el destino de la asignación, y cada campo de la fila debe poderse asignar al campo correspondiente en el destino de la asignación. Si los valores fuente y de destino son un tipo de fila definido por el usuario, los nombres de los tipos deben ser iguales (SQLSTATE 42821).

Normas

  • El número de valores que se debe asignar a partir de las expresiones, NULL, DEFAULT o la selección-completa-fila debe coincidir con el número de variables-destino especificado para la asignación (SQLSTATE 42802).
  • Una sentencia SET variable no puede asignar una variable de SQL y una variable de transición en una sentencia (SQLSTATE 42997).
  • Las variables globales no se pueden asignar dentro de activadores que no se han definido mediante una sentencia de SQL compuesto (compilado), funciones que no se han definido mediante una sentencia de SQL compuesto (compilado), métodos o sentencias de SQL compuesto (en línea) (SQLSTATE 428GX).
  • Si el valor que se asigna es una matriz resultante de un constructor de matriz o de ARRAY_AGG, los tipos base de la matriz y de la variable de destino deben ser idénticos (SQLSTATE 42821).
  • Utilización de tipos de datos anclados: Un tipo de datos anclado no puede hacer referencia a los siguientes objetos (SQLSTATE 428HS): un apodo, una tabla con tipo, una vista con tipo, una vista estadística asociada con un índice basado en la expresión, una tabla temporal declarada, una definición de fila asociada con un cursor de tipo débil, un objeto con una página de códigos o una clasificación que es diferente de la página de códigos de la base de datos o la asignación de base de datos.
  • Asignaciones que implican variables de cursor: las asignaciones que hacen referencia a una variable de cursor y que la establecen en el valor de un constructor de valor de cursor sólo se pueden utilizar en sentencias de SQL compuesto (compilado). Todas las sentencias OPEN que utilizan una variable de cursor deben aparecer en el mismo ámbito que la asignación (SQLSTATE 51044).

Notas

  • Se asignan valores a las variables de destino en función de normas de asignación específicas.
  • Sentencia de asignación en procedimientos de SQL: las sentencias de asignación de los procedimientos de SQL deben ajustarse a las normas de asignación de SQL. Las asignaciones de series utilizan normas de asignación de recuperación.
  • Asignaciones de elementos de matriz: si la asignación tiene la forma SET A[idx] = rhs, donde A es un nombre de variable de matriz, idx es una expresión utilizada como índice-matriz y rhs es una expresión del mismo tipo que el elemento de matriz, entonces:
    1. Si la matriz A es el valor nulo, defina A en la matriz vacía.
    2. C tiene que ser la cardinalidad de la matriz A.
    3. Si A es una matriz común:
      • Si idx es menor que o igual a C, el valor en la posición que idx identifica se sustituye por el valor de rhs.
      • Si idx es mayor que C, entonces:
        • El valor en posición i, dado que i es mayor que C y menor que idx, se establece en el valor nulo.
        • El valor en posición idx se establece en el valor de rhs.
        • La cardinalidad de A se establece en idx.
    4. Si A es una matriz asociativa:
      • Si idx coincide con un valor de índice de matriz existente, el valor de elemento cuyo índice de matriz es idx se sustituye por el valor de rhs.
      • Si idx no coincide con ningún valor de índice de matriz existente, entonces:
        • La cardinalidad de A aumenta en 1.
        • El nuevo valor de elemento se establece en rhs con el valor de índice de matriz asociado idx.
    5. Si idx es menor que o igual a C, el valor en la posición que idx identifica se sustituye por el valor de rhs.
    6. Si idx es mayor que C, entonces:
      1. El valor en posición i, dado que i es mayor que C y menor que idx, se establece en el valor nulo.
      2. El valor en posición idx se establece en el valor de rhs.
      3. La cardinalidad de A se establece en idx.
  • Si una variable se ha declarado con un identificador que coincide con el nombre de un registro especial (por ejemplo, PATH), se debe delimitar la variable para impedir una asignación no intencionada al registro especial (por ejemplo, SET "PATH" = 1; para una variable llamada PATH que se ha declarado como entero).
  • Si se incluye más de una asignación, se evalúa cada expresión y selección-completa-fila antes de que se realicen las asignaciones. Por lo tanto, las referencias a variables de destino en una expresión o una selección completa de fila siempre son el valor de la variable de destino antes de cualquier asignación en una única sentencia SET.
  • Cuando se actualiza una columna de identidad que se ha definido como un tipo diferenciado, todo el cálculo tiene lugar en el tipo de fuente y el resultado se convierte al tipo diferenciado antes de que el valor se asigne realmente a la columna. (No se produce ninguna conversión del valor anterior en el tipo de fuente antes de realizarse el cálculo.)
  • Para que el gestor de bases de datos genere un valor en una sentencia SET para una columna de identidad, utilice la palabra clave DEFAULT:
       SET NEW.EMPNO = DEFAULT
    En este ejemplo, NEW.EMPNO está definido como una columna de identidad, y el valor utilizado para actualizar la columna es generado por el gestor de bases de datos.
  • Para obtener más información acerca de la utilización máxima de los valores de una secuencia generada para una columna de identidad y para obtener información acerca de cuándo se excede el valor máximo de una columna de identidad, consulte el apartado "INSERT".

Ejemplos

  • Ejemplo 1: Establezca la columna del salario de la fila para la que se ejecuta actualmente la acción del activador en 50000.
       SET NEW_VAR.SALARY = 50000;
    O bien:
       SET (NEW_VAR.SALARY) = (50000);
  • Ejemplo 2: Establezca las columnas del salario y la comisión de la fila para la que se está ejecutando actualmente la acción de activador en 50000 y 8000, respectivamente.
       SET NEW_VAR.SALARY = 50000, NEW_VAR.COMM = 8000;
    O bien:
       SET (NEW_VAR.SALARY, NEW_VAR.COMM) = (50000, 8000);
  • Ejemplo 3: Establezca la columna del salario y la comisión de la fila para la que se está ejecutando actualmente la acción del activador en el salario y la comisión promedio de los empleados del departamento que está asociado a la fila actualizada.
       SET (NEW_VAR.SALARY, NEW_VAR.COMM)
          = (SELECT AVG(SALARY), AVG(COMM)
               FROM EMPLOYEE E
               WHERE E.WORKDEPT = NEW_VAR.WORKDEPT);
  • Ejemplo 4: Establezca la columna de salario y de comisión de la fila para la que se ejecuta actualmente la acción del activador en 10000 y el valor original del salario (es decir, antes de ejecutar la sentencia SET), respectivamente.
       SET NEW_VAR.SALARY = 10000, NEW_VAR.COMM = NEW_VAR.SALARY;
    O bien:
       SET (NEW_VAR.SALARY, NEW_VAR.COMM) = (10000, NEW_VAR.SALARY);
  • Ejemplo 5: Incremente la variable de SQL P_SALARY en un 10 por ciento.
       SET P_SALARY = P_SALARY + (P_SALARY * .10)
  • Ejemplo 6: Establezca la variable de SQL P_SALARY en el valor nulo.
       SET P_SALARY = NULL
  • Ejemplo 7: Asigne los números 2.71828183 y 3.1415926 al primer y décimo elemento de la variable de matriz SPECIALNUMBERS. Después de la primera asignación, la cardinalidad de P_PHONENUMBERS es 1. Después de la segunda asignación, la cardinalidad es 10 y se ha asignado implícitamente a los elementos del 2 al 9 el valor nulo.
       SET SPECIALNUMBERS[1] = 2.71828183;
    
       SET SPECIALNUMBERS[10] = 3.14159265;
  • Ejemplo 8: A partir de una tabla llamada SECURITY.USERS, que tiene una fila para cada usuario que puede conectarse a la base de datos, asigne la hora actual y el nivel de autorización a las variables globales USERINFO.GV_CONNECT_TIME y USERINFO.GV_AUTH_LEVEL, respectivamente.
       SET USERINFO.GV_CONNECT_TIME = CURRENT TIMESTAMP,
         USERINFO.GV_AUTH_LEVEL = (
           SELECT AUTHLEVEL FROM SECURITY.USERS
             WHERE USERID = CURRENT USER)
  • Ejemplo 9: Asigne valores a la variable de matriz asociativa, CAPITALS, que se ha declarado como el tipo de matriz CAPITALSARRAY.
       SET CAPITALS['British Columbia'] = 'Victoria';
       SET CAPITALS['Alberta'] = 'Edmonton';
       SET CAPITALS['Manitoba'] = 'Winnipeg';
       SET CAPITALS['Canada'] = 'Ottawa';
    Al rellenar los valores de la matriz CAPITALS, los índices de matriz son nombres de provincia, territorio y país especificados con series y los elementos de matriz asociados son capitales, que también se especifican con series.
  • Ejemplo 10: Asigne nombres fáciles de recordar como índices para los números de teléfono personales almacenados en la variable de matriz PHONELIST con el tipo de matriz PERSONAL_PHONENUMBERS.
       SET PHONELIST['Casa'] = '4163053745';
       SET PHONELIST['Trabajo'] = '4163053746';
       SET PHONELIST['Madre']  = '4164789683';