利用 DML的returning 语句可以返回刚刚操作的记录的信息,然后可以马上用于判断,这样避免了再次使用sql语句做一次select,提高了程序的性能,具体例子如下,注意update 和 delete 返回值的差别:
procedure test_returning is
eng varchar2(30);
loc varchar2(30);
begin
insert into tm_dual
(english_text,local_text)
values
('abcd','1234')
returning english_text,local_text into eng ,loc
;
dbms_output.put_line(sql%rowcount);
dbms_output.put_line(eng);
dbms_output.put_line(loc);
update tm_dual
set english_text = 'xyz'
where local_text = '1234'
returning english_text,local_text into eng ,loc
;
dbms_output.put_line(sql%rowcount);
dbms_output.put_line(eng);
dbms_output.put_line(loc);
delete tm_dual
where local_text = '1234'
returning english_text,local_text into eng ,loc
;
dbms_output.put_line(sql%rowcount);
dbms_output.put_line(eng);
dbms_output.put_line(loc);
end ;
运行结果如下:1
abcd
1234
1
xyz
1234
1
xyz
1234
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/65190/viewspace-582739/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/65190/viewspace-582739/