Cómo obtener los datos de SQL desde una sola fila

LA cursor

permite SQL para recuperar (o actualizar o eliminar) una sola fila a la vez para que pueda utilizar SQL en combinación con una aplicación escrita en cualquiera de las lenguas populares. El procesamiento de los cursores es un proceso de tres pasos:

  1. los DECLARE CURSOR sentencia especifica el nombre del cursor y ámbito de aplicación.

  2. los OPEN declaración recoge las filas de la tabla seleccionados por el DECLARE CURSOR consultar expresión.

  3. los FETCH declaración realidad recupera los datos.

El cursor se puede apuntar a una de las filas en el alcance del cursor o al lugar inmediatamente antes de la primera fila en el ámbito de aplicación, oa la ubicación inmediatamente después de la última fila en el ámbito de aplicación, o el espacio vacío entre dos filas. Puede especificar que el cursor apunta a la cláusula de orientación en el FETCH comunicado.

Sintaxis

La sintaxis de la FETCH declaración es

FETCH [[orientación] FROM] cursor nameINTO objetivo de especificación [, apuntar especificación] ... -

Siete opciones de orientación están disponibles:

  • SIGUIENTE

  • PREVIA

  • PRIMERO

  • ÚLTIMO

  • ABSOLUTA

  • PARIENTE

La opción por defecto es SIGUIENTE, que, por cierto, fue el solamente orientación disponible en versiones de SQL antes de SQL-92. los SIGUIENTE Orientación mueve el cursor desde donde quiera que esté a la siguiente fila del conjunto especificado por la expresión de consulta. Eso significa que si el cursor está situado antes del primer registro, se mueve al primer registro.

Si apunta a grabar n, se mueve para grabar n+1. Si el cursor apunta al último registro en el conjunto, se mueve más allá de ese registro y notificación de una condición de ausencia de datos se devuelve en el SQLSTATE variable de sistema.

Las especificaciones diana son o bien variables de sistema principal o parámetros, dependiendo de si SQL incrustado o un lenguaje de módulo, respectivamente, está usando el cursor. El número y tipo de las especificaciones de destino deben coincidir con el número y los tipos de las columnas especificadas por la expresión de consulta en el DECLARE CURSOR.

Así que en el caso de SQL incorporado, al buscar una lista de cinco valores de una fila de una tabla, a cinco variables del lenguaje principal debe estar allí para recibir esos valores, y deben ser los tipos adecuados.

Orientación de un cursor desplazable

Debido a que el cursor de SQL es desplazable, usted tiene otras opciones además de SIGUIENTE. Si especifica PREVIA, el puntero se mueve a la fila inmediatamente anterior a su ubicación actual. Si especifica PRIMERO, que apunta al primer registro en el conjunto, y si se especifica ÚLTIMO, apunta al último registro.

Cuando se utiliza el ABSOLUTA y PARIENTE Orientación, debe especificar un valor entero, también. Por ejemplo, FETCH ABSOLUTO 7 mueve el cursor a la séptima fila desde el principio de la serie. FETCH PARIENTE 7 mueve el cursor siete filas más allá de su posición actual. FETCH RELATIVA 0 no se mueve el cursor.

FETCH RELATIVA 1 tiene el mismo efecto que FETCH SIGUIENTE. FETCH RELATIVA -1 tiene el mismo efecto que FETCH PREVIO. FETCH ABSOLUTO 1 le da el primer registro en el conjunto, FETCH ABSOLUTA 2 le da el segundo registro del conjunto, y así sucesivamente.

Del mismo modo, FETCH ABSOLUTA -1 le da el último registro del conjunto, FETCH ABSOLUTA -2 le da el penúltimo disco, y así sucesivamente. Especificación FETCH ABSOLUTA 0 devuelve la excepción código de condición sin datos, ya que la voluntad FETCH ABSOLUTO 17 si sólo 16 filas están en el set. FETCH le otorga el registro especificado por la especificación de valor simple.

Sentencias DELETE y UPDATE de posición

Puede realizar operaciones de eliminación y actualización en la fila a la que el cursor está apuntando. La sintaxis de la BORRAR afirmación se ve así:

DELETE FROM nombre-tabla WHERE CURRENT OF nombre-cursor -

Si el cursor no apunta a una fila, la instrucción devuelve una condición de error, y no se produce la eliminación.

La sintaxis de la ACTUALIZACIÓN declaración es el siguiente:

ACTUALIZACIÓN mesa nameset nombre-columna = valor [, nombre-columna = valor] ... WHERE CURRENT OF nombre-cursor -

El valor de colocar en cada columna especificado debe ser una expresión de valor o la palabra clave DEFAULT. Si una operación de actualización posicionada intento devuelve un error, no se realiza la actualización.




» » » » Cómo obtener los datos de SQL desde una sola fila