Skip to Main Content

Oracle Database Free

Announcement

For appeals, questions and feedback, please email oracle-forums_moderators_us@oracle.com

23c documentation bug of returning_clause - data_item should be mandatory as in 21c

The returning_clause changed in 23c. It got the support of old and new. However, the optionality of a data_item did not change. The following figure compares the railroad diagrams in 23c and 21c:

For 23c see https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/DELETE.html#GUID-156845A5-B626-412B-9F95-8869B988ABD7__I2122564

According to the new 23c railroad diagram, the following script should work:

drop table if exists t;
create table t (id number);
insert into t (id) values (42);
delete from t where id = 42 returning old id into;

It does not make sense. And therefore it's ok that this throws an SQL Error: ORA-00936: missing expression.

The following amended script with a data_item works:

drop table if exists t;
create table t (id number);
insert into t (id) values (42);
variable myid number
delete from t where id = 42 returning old id into :myid;
print myid
Table T dropped.

Table T created.

1 row inserted.

1 row deleted.

      MYID
----------
        42

So it looks like the new optionality of data_item in the documentation of 23c seems to be wrong.

This post has been answered by Chris Saxon-Oracle on Jan 15 2024
Jump to Answer
Comments
Post Details
Added on Jan 14 2024
1 comment
110 views