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;