ORACLE的DML语句中可以指定RETURNING INTO语句。RETURNING INTO语句的使用在很多情况下可以简化PL/SQL编程,少一次select into语句。

DELETE操作:RETURNING返回的是DELETE之前的结果;

INSERT操作:RETURNING返回的是INSERT之后的结果;

UPDATE操作:的RETURNING语句是返回UPDATE操作之后的结果。


-- Created on 2015/11/5 星期四 by YANCONG-ZHANG

-- Returning的用法

DECLARE

-- Local variables here

i       INTEGER;

l_tid   NUMBER;

l_tname VARCHAR2(200);

l_tage  NUMBER;


BEGIN

-- Test statements here

--返回要插入的数据

INSERT INTO zyc

VALUES

(4, 'wy', 20)

RETURNING tid, tname, tage INTO l_tid, l_tname, l_tage;

dbms_output.put_line(l_tid || '-' || l_tname || '-' || l_tage);


--返回要删除的数据

DELETE zyc

WHERE tid = 1

RETURNING tid, tname, tage INTO l_tid, l_tname, l_tage;

dbms_output.put_line(l_tid || '-' || l_tname || '-' || l_tage);


--返回要更新的数据

UPDATE zyc

SET tid = 5, tname = 'lwj', tage = 22

WHERE tid = 2

RETURNING tid, tname, tage INTO l_tid, l_tname, l_tage;

dbms_output.put_line(l_tid || '-' || l_tname || '-' || l_tage);

COMMIT;


END;