版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31279347/article/details/83821984
DECLARE
Row_id ROWID;
info VARCHAR2(40);
BEGIN
INSERT INTO dept VALUES (91, 'SERVICE', 'BEIJING')
RETURNING rowid,dname||':'||to_char(deptno)||':'||loc
INTO row_id, info;
DBMS_OUTPUT.PUT_LINE('ROWID:'||row_id);
DBMS_OUTPUT.PUT_LINE(info);
END;
解析
在对数据表进行dml操作(Insert、Update和delete)的时候,有时会需要获取到进行操作的数据。最简单的方法就是在DML操作之前或者之后进行一下select操作,将数据获取到。此外,还可以使用一种更为简洁的方法,就是使用Oracle SQL的returning into
子句。
Returning Into简介
在进行insert、update和delete操作的时候,都可以在末尾加入returning into字句。这字句的作用是将进行DML操作影响到数据行的列值,保存进指定的PL/SQL变量中。使用该字句的效果,与进行insert、update之后执行select into,以及在delete之前进行select into的效果相同。在Oracle官方的PL/SQL指导书中,推荐这种方法进行变量保存,能够最大限度的保证数据的一致。