Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

UPDATE ... RETURNING does not return new value

417615Mar 28 2008 — edited Mar 28 2008
Hi all,

I've created the following objects in Oracle DB 10.2.0.3.0:
CREATE TABLE TAB1
(
	ID		NUMBER		PRIMARY KEY,
	EDITED_AT	DATE,
	VALUE		VARCHAR2(64)
);

CREATE SEQUENCE S_TAB1
	INCREMENT BY 1
	START WITH 1;

CREATE TRIGGER T_TAB1_BIE
BEFORE INSERT OR UPDATE ON TAB1
FOR EACH ROW
BEGIN
	IF INSERTING THEN
		SELECT S_TAB1.NEXTVAL INTO :NEW.ID FROM DUAL;
	END IF;
	:NEW.EDITED_AT := SYSDATE;
END;
/
Then I tried to do the following in SQL Plus:
SQL> insert into tab1(value) values('ddd');
1 row created.
SQL> commit;
Commit complete.
SQL>
SQL> select * from tab1;
        ID EDITED_AT           VALUE
---------- ------------------- ----------------------------------------------------------------
         1 27.03.2008 17:01:24 ddd
SQL>
SQL> declare dt date; val varchar2(64);
  2  begin update tab1 set value = 'ddd' where id = 1 returning edited_at, value into dt, val;
  3  dbms_output.put_line('txt = ' || dt || ', ' || val);
  4  end;
  5  /
txt = 27.03.2008 17:01:24, ddd
PL/SQL procedure successfully completed.
SQL>
SQL> select * from tab1;
        ID EDITED_AT           VALUE
---------- ------------------- ----------------------------------------------------------------
         1 27.03.2008 17:02:12 ddd
SQL>
As it can be seen Returning clause of an Update statement does not return a new date, i.e. 27.03.2008 17:02:12, that was updated by the trigger, it returns an old one - 27.03.2008 17:01:24. Please advise me why Database returns an old value? I do believe that UPDATE ... RETURNING ... statement should return new, generated by the trigger, value.

Thanks in advance.

Regards,
Yerzhan.
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 25 2008
Added on Mar 28 2008
7 comments
1,748 views