Instrucción UPDATE

La instrucción UPDATE cambia los valores de columnas especificadas en una o más filas de una tabla o vista. Para obtener una descripción completa de la instrucción SQL UPDATE, consulte la Referencia SQL de la base de datos Oracle.

Sintaxis

instrucción de actualización :: =

Descripción de la ilustración update_statement.gif

Descripción de palabras clave y parámetros

alias

Otro nombre (generalmente corto) para la tabla o vista referenciada, generalmente se usa en la cláusula WHERE.

column_name

La columna (o una de las columnas) que se actualizará. Debe ser el nombre de una columna en la tabla o vista referenciada. Un nombre de columna no se puede repetir en la lista column_name. Los nombres de las columnas no necesitan aparecer en la instrucción UPDATE en el mismo orden en que aparecen en la tabla o vista.

return_clause

Devuelve valores de las filas actualizadas, eliminando la necesidad de SELECT las filas posteriores. Puede recuperar los valores de columna en variables o variables del lenguaje principal, o en colecciones o matrices de sistemas principales. No puede utilizar la cláusula RETURNING para actualizaciones remotas o paralelas. Si la declaración no afecta a ninguna fila, los valores de las variables especificadas en la cláusula RETURNING no están definidos. Para conocer la sintaxis de returning_clause, consulte «REGRESO A la cláusula».

SET column_name = sql_expression

Esta cláusula asigna el valor de sql_expression a la columna identificada por column_name. Si sql_expression contiene referencias a columnas en la tabla que se actualiza, las referencias se resuelven en el contexto de la fila actual. Los valores de columna antiguos se utilizan en el lado derecho del signo igual.

SET column_name = (subquery3)

Asigna el valor recuperado de la base de datos por subquery3 a la columna identificada por column_name. La subconsulta debe devolver exactamente una fila y una columna.

SET (column_name, column_name, …) = (subquery4)

Asigna los valores recuperados de la base de datos por subquery4 a las columnas de la lista column_name. La subconsulta debe devolver exactamente una fila que incluya todas las columnas enumeradas. Los valores de columna devueltos por la subconsulta se asignan a las columnas de la lista de columnas en orden. El primer valor se asigna a la primera columna de la lista, el segundo valor se asigna a la segunda columna de la lista, y así sucesivamente.

sql_expression

Cualquier expresión SQL válida. Para obtener más información, consulte Referencia SQL de la base de datos Oracle.

subconsulta

Una instrucción SELECT que proporciona un conjunto de filas para su procesamiento. Su sintaxis es como la de select_into_statement sin la cláusula INTO. Consulte «Instrucción SELECT INTO».

table_reference

Una tabla o vista a la que debe ser accesible cuando ejecuta la instrucción UPDATE y para que debe tener privilegios UPDATE. Para conocer la sintaxis de table_reference, consulte «Declaración DELETE».

TABLE (subconsulta2)

El operando de TABLE es una SELECT declaración que devuelve un valor de una sola columna, que debe ser una tabla anidada o varray. El operador TABLE informa a Oracle que el valor es una colección, no un valor escalar.

DONDE CURRENT OF cursor_name

Se refiere a la última fila procesado por la instrucción FETCH asociada con el cursor especificado. El cursor debe ser FOR UPDATE y debe estar abierto y colocado en una fila. Si el cursor no está abierto, la cláusula CURRENT OF genera un error. Si el cursor está abierto, pero no se han obtenido filas o la última búsqueda no devolvió filas, PL / SQL genera la excepción predefinida NO_DATA_FOUND.

WHERE condición_de_búsqueda

Elige qué filas actualizar en la tabla de la base de datos. Solo se actualizan las filas que cumplen la condición de búsqueda. Si omite esta cláusula, todas las filas de la tabla se actualizan.

Notas de uso

Puede utilizar UPDATE WHERE CURRENT OF después de una búsqueda desde un cursor abierto (incluidas las obtenidas mediante un cursor FOR bucle), siempre que la consulta asociada sea FOR UPDATE. Esta declaración actualiza la fila que se acaba de obtener.

El cursor implícito SQL y los atributos del cursor %NOTFOUND, %FOUND, %ROWCOUNT y %ISOPEN te permiten acceder a información útil sobre la ejecución de un UPDATE declaración.

Ejemplos

El ejemplo 13-7 crea una tabla con los ID de empleado correctos pero nombres confusos. Luego, ejecuta una instrucción UPDATE con una consulta correlacionada, para recuperar los nombres correctos de la tabla EMPLOYEES y corregir los nombres en la nueva tabla. .

Para ver ejemplos, consulte lo siguiente:

Ejemplo 1-12, «Creación de un subprograma almacenado»
Ejemplo 4-1, «Uso de una instrucción IF-THEN simple»
Ejemplo 5-51, «Actualización de una fila mediante un registro»
Ejemplo 5-52, «Uso de la cláusula RETURNING con un registro»
Ejemplo 6-1, «Manipulación de datos con PL / SQL»
Ejemplo 6-5, «Uso de CURRVAL y NEXTVAL»
Ejemplo 6-6, «Uso de ROWNUM»
Ejemplo 6-38, «Uso de SAVEPOINT con ROLLBACK»
Ejemplo 6-41, «Uso de CURRENT OF para actualizar la última fila obtenida de un cursor «
Ejemplo 7-1,» Ejemplos de SQL dinámico «
Ejemplo 7-5,» SQL dinámico con cláusula RETURNING BULK COLLECT INTO «
Ejemplo 7-6 , «SQL dinámico dentro de la instrucción FORALL»
Ejemplo 11-6, «Uso de reversiones con FORALL»
Ejemplo 11-9, «Operación masiva que continúa a pesar de las excepciones»

Temas relacionados

«Manipulación de datos»
«Sentencia DELETE»
«Sentencia FETCH»
«Sentencia INSERT»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *