Notas del release

38.2 Capítulo 3. Elementos de lenguaje

38.2.1 Convenios de denominación y calificaciones implícitas de nombres de objetos

Añada la nota siguiente a este apartado del Capítulo 3:

      Los nombres siguientes, si se utilizan en el contexto de
   Procedimientos SQL, están limitados a los caracteres permitidos en
   un identificador ordinario, aunque los nombres estén delimitados:
 
   - nombre-condición
   - etiqueta
   - nombre-parámetro
   - nombre-procedimiento
   - nombre-variable-SQL
   - nombre-sentencia

38.2.2 Asignaciones de DATALINK

Se ha cambiado un párrafo de esta sección, que ahora es así:

      Observe que el tamaño de un parámetro de URL o resultado de función
   es el mismo en la entrada y en la salida, y está limitado por la
   longitud de la columna DATALINK.
   Pero en algunos casos, el valor de URL devuelto tiene asociado un
   símbolo de acceso.
   En las situaciones en las que esto sea posible, la ubicación de salida
   debe tener suficiente espacio de almacenamiento para el símbolo de
   acceso y la longitud de la columna DATALINK. Por tanto, la longitud
   real del comentario y del URL en su forma totalmente ampliada que se
   proporciona en la entrada debe estar limitada para que se ajuste al
   espacio de almacenamiento de salida. Si se excede la longitud
   restringida, se produce un error.

38.2.3 Expresiones

38.2.3.1 Diagrama de sintaxis

El diagrama de sintaxis se ha cambiado a lo siguiente:

   .-operador-------------------------------------.
   V                                              |
>>----+-----+---+-función----------------------+--+------------><
      +- + -+   +-(expresión)------------------+
      '- - -'   +-constante--------------------+
                +-nombre-columna---------------+
                +-variable-lenguaje-principal--+
                +-registro-especial------------+
                +-(selección-completa-escalar)-+
                +-duración-etiquetada----------+
                +-expresión-case---------------+
                +-especificación-cast----------+
                +-operación-desreferencia------+
                +-función-OLAP-----------------+
                +-invocación-método------------+
                +-tratamiento-subtipos---------+
                '-referencia-secuencia---------'
 
operador
 
             (1)
|---+-CONCAT------+---------------------------------------------|
    +- / ---------+
    +- * ---------+
    +- + ---------+
    '- - ---------'
 

Notas:

  1. Se puede utilizar | como sinónimo de CONCAT.

38.2.3.2 Funciones de OLAP

Lo siguiente representa una corrección a la sección "Funciones de OLAP" del apartado "Expresiones" del Capítulo 3.

 
función-agregación
 
|--función-columna--OVER---------------------------------------->
 
>----(--+---------------------------------+--------------------->
        '-| cláusula-partición-ventana |--'
 
>----+-------------------------------------------------------------------------+>
     '-| cláusula-orden-ventana |--+----------------------------------------+--'
                                   '-| cláusula-grupo-agregación-ventana |--'
 
>---------------------------------------------------------------|
 
cláusula-orden-ventana
 
              .-,-----------------------------------------------------.
              V                                 .-| opción asc |---.  |
|---ORDER BY-----expresión-clave-clasificación--+------------------+--+->
                                                '-| opción desc |--'
 
>---------------------------------------------------------------|
 
opción asc
 
         .-NULLS LAST--.
|---ASC--+-------------+----------------------------------------|
         '-NULLS FIRST-'
 
opción desc
 
          .-NULLS FIRST--.
|---DESC--+--------------+--------------------------------------|
          '-NULLS LAST---'
 
cláusula-grupo-agregación-ventana
 
|---+-ROWS--+---+-| inicio-grupo |-+----------------------------|
    '-RANGE-'   +-| entre-grupo |--+
                '-| fin-grupo |----'
 
fin-grupo
 
|---+-UNBOUNDED FOLLOWING-------------+-------------------------|
    '-constante-sin-signo--FOLLOWING--'
 

En la descripción de cláusula-orden-ventana:

NULLS FIRST
El orden de la ventana considera los valores nulos antes que todos los valores no nulos en el orden de clasificación.

NULLS LAST
El orden de la ventana considera los valores nulos después de todos los valores no nulos en el orden de clasificación.

En la descripción de cláusula-grupo-agregación-ventana:

cláusula-grupo-agregación-ventana
El grupo de agregación de una fila R es un conjunto de filas, definido en relación a R en la ordenación de las filas de la partición de R. Esta cláusula especifica el grupo de agregación. Si no se especifica esta cláusula, el valor por omisión es igual que el de RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW, siempre que se produzca una agregación acumulativa.

ROWS
Indica que el grupo de agregación se define contando filas.

RANGE
Indica que el grupo de agregación se define mediante un desplazamiento desde una clave de clasificación.

inicio-grupo
Especifica el punto inicial del grupo de agregación. El final del grupo de agregación es la fila actual. El hecho de especificar la cláusula de inicio-grupo es equivalente a una cláusula entre-grupo con formato "BETWEEN inicio-grupo AND CURRENT ROW".

entre-grupo
Especifica el inicio y el fin del grupo de agregación en base a ROWS o RANGE.

fin-grupo
Especifica el punto final del grupo de agregación. El inicio del grupo de agregación es la fila actual. El hecho de especificar la cláusula fin-grupo es equivalente a una cláusula entre-grupo con formato "BETWEEN CURRENT ROW AND fin-grupo".

UNBOUNDED PRECEDING
Incluye la partición completa que precede a la fila actual. Se puede especificar con ROWS o RANGE. Asimismo, se puede especificar con varias expresiones-clave-clasificación en la cláusula-orden-ventana.

UNBOUNDED FOLLOWING
Incluye la partición completa que sigue a la fila actual. Se puede especificar con ROWS o RANGE. Asimismo, se puede especificar con varias expresiones-clave-clasificación en la cláusula-orden-ventana.

CURRENT ROW
Especifica el inicio o el final del grupo de agregación en base a la fila actual. Si se especifica ROWS, la fila actual es el límite del grupo de agregación. Si se especifica RANGE, el límite del grupo de agregación incluye el conjunto de filas que tienen para las expresiones-clave-clasificación valores iguales a los de la fila actual. Esta cláusula no se puede especificar en vinculación2-grupo si vinculación1-grupo especifica valor FOLLOWING.

valor PRECEDING
Especifica el rango o número de filas que preceden a la fila actual. Si se especifica ROWS, valor es un entero positivo que indica un número de filas. Si se especifica RANGE, el tipo de datos de valor debe ser comparable al tipo de la expresión-clave-clasificación de la cláusula-orden-ventana. Sólo puede haber una expresión-clave-clasificación y el tipo de datos de la misma debe permitir las restas. Esta cláusula no se puede especificar en vinculación2-grupo si vinculación1-grupo es CURRENT ROW o valor FOLLOWING.

valor FOLLOWING
Especifica el rango o número de filas que siguen a la fila actual. Si se especifica ROWS, valor es un entero positivo que indica un número de filas. Si se especifica RANGE, el tipo de datos de valor debe ser comparable al tipo de la expresión-clave-clasificación de la cláusula-orden-ventana. Sólo puede haber una expresión-clave-clasificación y el tipo de datos de la misma debe permitir las adiciones.

38.2.3.3 Referencia a secuencia

La información siguiente se debe añadir al final de la sección "Expresiones" (a continuación de "Tratamiento de subtipos").

 
referencia-secuencia
 
|--+-| expresión-nextval |-+------------------------------------|
   '-| expresión-prevval |-'
 
expresión-nextval
 
|---NEXTVAL FOR--nombre-secuencia-------------------------------|
 
expresión-prevval
 
|---PREVVAL FOR--nombre-secuencia-------------------------------|
 

NEXTVAL FOR nombre-secuencia
La expresión NEXTVAL devuelve el valor siguiente de la secuencia especificada por nombre-secuencia.

PREVVAL FOR nombre-secuencia

La expresión PREVVAL devuelve el último valor generado en una sentencia anterior, para la secuencia especificada, dentro de la sesión actual. Este valor se puede referenciar repetidamente utilizando expresiones PREVVAL que especifiquen el nombre de la secuencia. Pueden existir varias expresiones PREVVAL que especifiquen el mismo nombre de secuencia dentro de una sentencia individual y todas ellas devuelven el mismo valor.

Sólo se puede utilizar una expresión PREVVAL si previamente se ha especificado una expresión NEXTVAL con el mismo nombre de secuencia en la sesión de usuario actual (en la transacción actual o en una anterior)(SQLSTATE 51035).

Nota:

Ejemplos:

En estos ejemplos se supone que existe una tabla llamada "order" y que se crea un secuencia llamada "order_seq" del siguiente modo:

CREATE SEQUENCE order_seq
   START WITH 1
   INCREMENT BY 1
   NOMAXVALUE
   NOCYCLE
   CACHE 24


[ Principio de página | Página anterior | Página siguiente ]