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»