Keyword and Parameter Description:
This specifies a table or view that should be accessible when you execute the DELETE statement, and for that you must have DELETE privileges.
This is a SELECT statement which provides a set of rows for the processing. Its syntax is such that of select_into_statement without the INTO clause.
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 a nested table. The Operator TABLE informs the Oracle that the value is a collection, but not a scalar value.
This is another (generally short) name for the referenced table or view and is usually used in the WHERE clause.
This clause provisionally chooses the rows to be deleted from the referenced table or the view. Only rows which meet the search condition are deleted. If you omit the WHERE clause, then all rows in the table or view are deleted.
WHERE CURRENT OF cursor_name:
This clause refers to the most recent 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 placed on a row. When the cursor is not open, the CURRENT OF clause causes an error.
When the cursor is open, but no rows have been fetched or the last fetch returned no rows, then PL/SQL raises the predefined exception NO_DATA_FOUND.
This clause returns values from the deleted rows, by this means eliminating the need to SELECT the rows ahead of time. 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 deletes.
These clauses instruct the SQL engine to bulk-bind the output collections before returning them to the PL/SQL engine. The SQL engine bulk-binds all the collections referenced in the RETURNING INTO list. The corresponding columns should store scalar (and not the composite) values.