Oracle DML 子句 RETURNING INTO 用法示例
来源:互联网 发布:网络直播平台开发 编辑:程序博客网 时间:2024/05/16 19:15
the
from: http://www.oracle-base.com/articles/misc/dml_returning_into_clause.php
--End--
RETURNING INTO
clause allows us to return column values for rows affected by DML statements. The following test table is used to demonstrate this clause.When we insert data using a sequence to generate our primary key value, we can return the primary key value as follows.DROP TABLE t1;DROP SEQUENCE t1_seq;CREATE TABLE t1 ( id NUMBER(10), description VARCHAR2(50), CONSTRAINT t1_pk PRIMARY KEY (id));CREATE SEQUENCE t1_seq;INSERT INTO t1 VALUES (t1_seq.nextval, 'ONE');INSERT INTO t1 VALUES (t1_seq.nextval, 'TWO');INSERT INTO t1 VALUES (t1_seq.nextval, 'THREE');COMMIT;
The syntax is also available for update and delete statements.SET SERVEROUTPUT ONDECLARE l_id t1.id%TYPE;BEGIN INSERT INTO t1 VALUES (t1_seq.nextval, 'FOUR') RETURNING id INTO l_id; COMMIT; DBMS_OUTPUT.put_line('ID=' || l_id);END;/ID=4PL/SQL procedure successfully completed.SQL>
When DML affects multiple rows we can still use theSET SERVEROUTPUT ONDECLARE l_id t1.id%TYPE;BEGIN UPDATE t1 SET description = description WHERE description = 'FOUR' RETURNING id INTO l_id; DBMS_OUTPUT.put_line('UPDATE ID=' || l_id); DELETE FROM t1 WHERE description = 'FOUR' RETURNING id INTO l_id; DBMS_OUTPUT.put_line('DELETE ID=' || l_id); COMMIT;END;/UPDATE ID=4DELETE ID=4PL/SQL procedure successfully completed.SQL>
RETURNING INTO
, but now we must return the values into a collection using theBULK COLLECT
clause.We can also use theSET SERVEROUTPUT ONDECLARE TYPE t_tab IS TABLE OF t1.id%TYPE; l_tab t_tab;BEGIN UPDATE t1 SET description = description RETURNING id BULK COLLECT INTO l_tab; FOR i IN l_tab.first .. l_tab.last LOOP DBMS_OUTPUT.put_line('UPDATE ID=' || l_tab(i)); END LOOP; COMMIT;END;/UPDATE ID=1UPDATE ID=2UPDATE ID=3PL/SQL procedure successfully completed.SQL>
RETURNING INTO
clause in combination with bulk binds.This functionality is also available from dymanic SQL.SET SERVEROUTPUT ONDECLARE TYPE t_desc_tab IS TABLE OF t1.description%TYPE; TYPE t_tab IS TABLE OF t1%ROWTYPE; l_desc_tab t_desc_tab := t_desc_tab('FIVE', 'SIX', 'SEVEN'); l_tab t_tab;BEGIN FORALL i IN l_desc_tab.first .. l_desc_tab.last INSERT INTO t1 VALUES (t1_seq.nextval, l_desc_tab(i)) RETURNING id, description BULK COLLECT INTO l_tab; FOR i IN l_tab.first .. l_tab.last LOOP DBMS_OUTPUT.put_line('INSERT ID=' || l_tab(i).id || ' DESC=' || l_tab(i).description); END LOOP; COMMIT;END;/INSERT ID=5 DESC=FIVEINSERT ID=6 DESC=SIXINSERT ID=7 DESC=SEVENPL/SQL procedure successfully completed.SQL>
For more information see:SET SERVEROUTPUT ONDECLARE TYPE t_tab IS TABLE OF t1.id%TYPE; l_tab t_tab;BEGIN EXECUTE IMMEDIATE 'UPDATE t1 SET description = description RETURNING id INTO :l_tab' RETURNING BULK COLLECT INTO l_tab; FOR i IN l_tab.first .. l_tab.last LOOP DBMS_OUTPUT.put_line('UPDATE ID=' || l_tab(i)); END LOOP; COMMIT;END;/UPDATE ID=1UPDATE ID=2UPDATE ID=3PL/SQL procedure successfully completed.SQL>
- RETURNING INTO Clause
from: http://www.oracle-base.com/articles/misc/dml_returning_into_clause.php
--End--
- Oracle DML 子句 RETURNING INTO 用法示例
- Oracle RETURNING INTO 用法示例
- Oracle RETURNING INTO 用法示例
- Oracle RETURNING INTO 用法示例
- Oracle returning into 用法
- Returning Into子句研究
- DML RETURNING INTO
- DML RETURNING INTO Clause
- 数据处理(DML、RETURNING、MERGE INTO)
- DML语句的Returning...Into...
- oracle:RETURNING 子句
- ORACLE:RETURNING 子句
- ORACLE:RETURNING 子句
- RETURNING into用法
- oracle returning into
- SQL基础--> 数据处理(DML、RETURNING、MERGE INTO)
- SQL基础--> 数据处理(DML、RETURNING、MERGE INTO)
- SQL基础--> 数据处理(DML、RETURNING、MERGE INTO)
- css参数之间要有空格隔开否则ie6下不起作用——亲测
- Android屏幕密度(Density)和分辨率的解释
- cpp 操作文件
- PHP5中图片验证码的制作
- Spring3 MVC国际化和本地化教程
- Oracle DML 子句 RETURNING INTO 用法示例
- 怎样做一个人见人爱的软件测试经理
- 在UIWebView中加载本地图片
- 20120215
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- Bitmap getPix() setPixt()
- C#技术分享【PDF转换成图片——10种方案】(2013-07-25重新整理)
- 浅谈java异常[Exception]
- android 判断当前application 是在前台还是在后台