Parameter and Keyword Description:
This keyword identifies the table or view that should be accessible when you execute the UPDATE statement, and for which you should have the UPDATE privileges.
This is a SELECT statement which gives a set of rows for the processing.
The operand of the TABLE is a SELECT statement which returns a single column value, that should be a nested table or a varray cast as the nested table. The Operator TABLE informs the Oracle that the value is a collection, however not a scalar value.
This is the other (typically short) name for the referenced table or view and is usually used in the WHERE clause.
This is the name of the column which is to be updated. It should be the name of a column in the referenced table or the view. The column name cannot be repetitive in the column_name list. The Column names do not require appearing in the UPDATE statement in similar order that they appear in the table or view.
This is any of the valid SQL expression.
SET column_name = sql_expression:
This clause assigns the value of the sql_expression to the column recognized by the column_name. If the sql_expression contains the references of the columns in the table being updated, the references are solved in the phrase of the present row. The older column values are used on the right side of the equal sign.
In the illustration below, you raise every employee's salary by 10%. The real value of the sal column is multiplied by 1.10, and then the result is assigned to the sal column overwriting the real value.
UPDATE emp SET sal = sal * 1.10;
SET column_name = (subquery3):
This clause assigns the value retrieve from the database by the subquery3 to the column recognized by the column_name. The sub query should return specifically one row & one column.
SET (column_name, column_name, ...) = (subquery4):
This clause assigns the values retrieve from the database by the subquery4 to the columns in the column_name list. The sub query should return exactly one row which includes all the columns listed.
The columns values return by the sub query are assigned to the columns in the column list in order. The initial value is assigned to the first column in the list; the second value is assigned to the second column in the list, and so on. In the correlated query below, the column item_id is assigned the value stored in the item_num, and the column price is assigned to the value stored in the item_price:
UPDATE inventory inv -- alias
SET (item_id, price) =
(SELECT item_num, item_price FROM item_table
WHERE item_name = inv.item_name);
This clause prefers that rows to update in the database table. Only the rows that meet the search condition are updated. If you omit the search situation, all the rows in the table are updated
WHERE CURRENT OF cursor_name:
This clause refers to the newest row processed by the FETCH statement related with the cursor identified by the cursor_name. The cursor should be FOR UPDATE and should be open and situated on a row. When the cursor is not open, the CURRENT OF the clause causes an error. If the cursor is open, however no rows have been fetched or the last fetch returned no rows, the PL/SQL raises the predefined exception NO_DATA_FOUND.
This clause lets you return values from the updated rows, thereby removing the need to SELECT the rows later. You can retrieve the column values into the variables and/or host variables, or into the collections and/or host arrays. Though, you cannot use the RETURNING clause for remote or parallel updates.