- 浏览: 223814 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (244)
- java (23)
- java多线程 (7)
- 综合 (1)
- oracle10g (24)
- div+css (1)
- Flex (27)
- java Nio (1)
- java设计模式 (8)
- struts2 (10)
- spring3.0 (5)
- SSH (9)
- dwr (5)
- hibernate3.6 (17)
- dom4j (1)
- sql优化 (5)
- Quartz任务调度框架 (1)
- AOP (3)
- JavaScript (18)
- jquery (3)
- JSF (9)
- ruby (1)
- 正则表达式 (1)
- 明日准备 (2)
- eclipse (3)
- gvim (1)
- CMS (1)
- linux (6)
- 杂 (4)
- java 设计模式 (1)
- MySql (10)
- JBPM (4)
- JSP技术 (1)
- Mybatis And Ibatis (2)
- 经验之谈 (10)
- WebService (1)
- java分布式(高性能,高可用,可伸缩) (0)
- springMvc (2)
- redis (0)
- ant (1)
- Nutz (6)
- 配置管理 (0)
- css+div (1)
- eChars (1)
- angularJs (1)
- D3 (3)
- Scala (1)
最新评论
-
Cobain_LI:
Cobain_LI 写道学习了,之前一直都没注意到有这样的问题 ...
js面向对象3--更简单的原型模式已经带来的问题以及解决办法 -
Cobain_LI:
Cobain_LI 写道学习了,之前一直都没注意到有这样的问题 ...
js面向对象3--更简单的原型模式已经带来的问题以及解决办法 -
Cobain_LI:
有个小失误,144和147行多了两个花括号
js面向对象2--js中工厂模式的演化(重要,详细) -
Cobain_LI:
学习了,之前一直都没注意到有这样的问题
js面向对象3--更简单的原型模式已经带来的问题以及解决办法 -
YTT1121:
有网络拓扑发现的源代码么,或者您会编写么?可以有偿求购,搞科研 ...
flex 之twaver1--简单网络拓扑实现
insert into/update/delete returning into语法
- 博客分类:
- oracle10g
insert into/update/delete returning into语法用于在plsql程序设计中插入一条记录后返回插入的信息
到设定的变量中:
注意:rownum不能返回,rowid可以返回。
总结:
1,返回的时候直接使用被插入表的字段名称例如:returning rowid,deptno || ',' || dname || ',' || loc这里的rowid,dename,loc都是被插入表中的字段。
2,不能与DML语句和远程对象一起使用;
3,不能检索LONG 类型信息(也就是rownum不能被返回,只能返回rowid)
4,当通过视图向基表中插入数据时,只能与单基表视图一起使用。
5,update返回的是更新以后的字段的数值。
实例:
declare
v_rownum number;
v_rowid rowid;
v_info varchar2(30);
begin
insert into dept values(8,'业务部','北京')
returning rowid,deptno || ',' || dname || ',' || loc
into v_rowid,v_info;
dbms_output.put_line(v_rowid);
dbms_output.put_line(v_info);
end;
PL/SQL procedure successfully completed
2,//更新时返回实例
DECLARE
Row_id ROWID;
info VARCHAR2(40);
BEGIN
UPDATE dept SET deptno=100 WHERE DNAME='财务室'
RETURNING rowid, dname||':'||to_char(deptno)||':'||loc
INTO row_id, info;
DBMS_OUTPUT.PUT_LINE('ROWID:'||row_id);
DBMS_OUTPUT.PUT_LINE(info);
END;
RETURNING子句用于检索被修改行的信息。当UPDATE语句修改单行数据时,RETURNING 子句可以检索被修改行的ROWID和REF值,以及行中被修改列的列表达式,并可将他们存储到PL/SQL变量或复合变量中;当UPDATE语句修改多行数据时,RETURNING 子句可以将被修改行的ROWID和REF值,以及列表达式值返回到复合变量数组中。在UPDATE中使用RETURNING 子句的限制与INSERT语句中对RETURNING子句的限制相同。
3,删除时返回
DECLARE
Row_id ROWID;
info VARCHAR2(40);
BEGIN
DELETE dept WHERE DNAME='办公室'
RETURNING rowid, dname||':'||to_char(deptno)||':'||loc INTO row_id, info;
DBMS_OUTPUT.PUT_LINE('ROWID:'||row_id);
DBMS_OUTPUT.PUT_LINE(info);
END;
RETURNING子句用于检索被删除行的信息:当DELETE语句删除单行数据时,RETURNING 子句可以检索被删除行的ROWID和REF值,以及被删除列的列表达式,并可将他们存储到PL/SQL变量或复合变量中;当DELETE语句删除多行数据时,RETURNING 子句可以将被删除行的ROWID和REF值,以及列表达式值返回到复合变量数组中。在DELETE中使用RETURNING 子句的限制与INSERT语句中对RETURNING子句的限制相同。
如果在teturning 后边添加 rownum会有错误提示:
ORA-00976: 此处不允许为 LEVEL, PRIOR 或 ROWNUM
到设定的变量中:
注意:rownum不能返回,rowid可以返回。
总结:
1,返回的时候直接使用被插入表的字段名称例如:returning rowid,deptno || ',' || dname || ',' || loc这里的rowid,dename,loc都是被插入表中的字段。
2,不能与DML语句和远程对象一起使用;
3,不能检索LONG 类型信息(也就是rownum不能被返回,只能返回rowid)
4,当通过视图向基表中插入数据时,只能与单基表视图一起使用。
5,update返回的是更新以后的字段的数值。
实例:
declare
v_rownum number;
v_rowid rowid;
v_info varchar2(30);
begin
insert into dept values(8,'业务部','北京')
returning rowid,deptno || ',' || dname || ',' || loc
into v_rowid,v_info;
dbms_output.put_line(v_rowid);
dbms_output.put_line(v_info);
end;
输出结果: SQL> declare 2 v_rownum number; 3 v_rowid rowid; 4 v_info varchar2(30); 5 begin 6 insert into dept values(8,'业务部','北京') 7 returning rowid,deptno || ',' || dname || ',' || loc 8 into v_rowid,v_info; 9 dbms_output.put_line(v_rowid); 10 dbms_output.put_line(v_info); 11 end; 12 / AAAMfNAAEAAAAAMAAD 8,业务部,北京
PL/SQL procedure successfully completed
2,//更新时返回实例
DECLARE
Row_id ROWID;
info VARCHAR2(40);
BEGIN
UPDATE dept SET deptno=100 WHERE DNAME='财务室'
RETURNING rowid, dname||':'||to_char(deptno)||':'||loc
INTO row_id, info;
DBMS_OUTPUT.PUT_LINE('ROWID:'||row_id);
DBMS_OUTPUT.PUT_LINE(info);
END;
RETURNING子句用于检索被修改行的信息。当UPDATE语句修改单行数据时,RETURNING 子句可以检索被修改行的ROWID和REF值,以及行中被修改列的列表达式,并可将他们存储到PL/SQL变量或复合变量中;当UPDATE语句修改多行数据时,RETURNING 子句可以将被修改行的ROWID和REF值,以及列表达式值返回到复合变量数组中。在UPDATE中使用RETURNING 子句的限制与INSERT语句中对RETURNING子句的限制相同。
3,删除时返回
DECLARE
Row_id ROWID;
info VARCHAR2(40);
BEGIN
DELETE dept WHERE DNAME='办公室'
RETURNING rowid, dname||':'||to_char(deptno)||':'||loc INTO row_id, info;
DBMS_OUTPUT.PUT_LINE('ROWID:'||row_id);
DBMS_OUTPUT.PUT_LINE(info);
END;
RETURNING子句用于检索被删除行的信息:当DELETE语句删除单行数据时,RETURNING 子句可以检索被删除行的ROWID和REF值,以及被删除列的列表达式,并可将他们存储到PL/SQL变量或复合变量中;当DELETE语句删除多行数据时,RETURNING 子句可以将被删除行的ROWID和REF值,以及列表达式值返回到复合变量数组中。在DELETE中使用RETURNING 子句的限制与INSERT语句中对RETURNING子句的限制相同。
如果在teturning 后边添加 rownum会有错误提示:
ORA-00976: 此处不允许为 LEVEL, PRIOR 或 ROWNUM
发表评论
-
oracle 取日期字段的年月日。
2015-06-01 20:19 2032-- Create table create table O ... -
oracle查询一个表的所有分区的名字及所在的表空间
2015-04-04 13:03 1627从USER_TAB_PARTITIONS这个数据库字典表中查询 ... -
oracle表分区详解(转载)
2015-04-04 10:40 536特别注明:该博文转自:http://tianzt.blog.5 ... -
oracle执行计划详解
2015-03-29 09:53 498一.相关的概念 Rowid ... -
sql分组可以按照多个字段分组
2014-12-03 23:38 1050--创建学生表 create table student(s ... -
Oracle二:insert delete update returning into句式
2014-12-01 23:02 1047功能:插入,删除,更新返回操作的记录字段,赋值到变量。 注意: ... -
oracle一:oracle创建表空间,创建用户,分配权限
2014-12-01 22:10 620--第一步:用sql developer或sql plus的s ... -
Hibernate 调用返回值的存储过程
2014-08-04 02:20 2811注:原创作品,转载请注明出处。 曾一度认为orac ... -
oracle创建用户,创建表空间,分配权限。
2014-08-03 19:15 662注:原创作品,转载请注明出处。 --1.首先用scott( ... -
oralce 游标
2014-01-20 16:32 4601,一般游标、参数游标。 declare dep ... -
plsql 表达式
2014-01-01 12:33 659第一:boolean赋值 实例: [color=orange] ... -
oracle10g 系统自带函数-subStr,sys_connect_by_path
2013-12-31 15:08 7941,subStr subSrt是截取字符串函数,下面是详 ... -
oracle 复合类型-record、数组、%type、%rowtype、plsql table类型
2013-12-30 08:38 3122知识点: 1,ORACLE 在 PL/SQL 中除了提供象前面 ... -
oracle 视图(view)
2013-12-29 19:37 6311,视图分为两种 第一 ... -
处理scott用户没有创建视图的权限
2013-12-29 19:06 779通过sys账户给scott账户授权: grant creat ... -
oracle rownum 详解 rowid
2013-12-29 18:23 7331,针对select * from scott.d ... -
plsql点滴
2013-12-29 18:14 5061,oracle对关键字大小不区分,对内容大小区分。 2,PL ... -
plsql实战之综合应用
2013-12-25 13:29 497create or replace package pack_ ... -
plsql-集合-关联数组(下标为数字、字符串)
2013-10-10 11:40 1116--*******集合1--关联数组 ... -
oralce plsql 游标双循环实现 一个表中id的插入
2013-10-10 09:14 588declare tempId1 department ...
相关推荐
- out-bind(输出绑定):当INSERT, UPDATE, 或 DELETE语句的RETURNING子句将数据库值分配给PL/SQL变量或主机变量。 - define(定义绑定):当SELECT或FETCH语句将数据库值分配给PL/SQL变量或主机变量。 3. **DML...
在这里,`RETURNING id INTO #{id}`是Oracle数据库特有的语法,用于获取自动生成的主键值。 2. 更新操作 ```xml <update id="updateStudent"> UPDATE student SET name = #{name}, age = #{age}, address = ...
以下示例演示了如何在INSERT语句中使用RETURNING子句来检索刚插入的记录的ROWID和相关信息: ```sql DECLARE Row_id ROWID; info VARCHAR2(40); BEGIN INSERT INTO scott.dept VALUES (90, '财务室', '海口') ...
JDBC默认情况下,`insert`, `update`, `delete`等操作的返回值表示的是受影响的行数,并不能直接返回新插入记录的ID。针对这一需求,有两种常用的方法: 1. **利用`INSERT INTO … RETURNING`语法**: - 对于支持`...
在 PL/SQL 中执行数据操纵语言 (Data Manipulation Language, DML) 语句(如 INSERT、UPDATE 和 DELETE)时,可以使用 RETURNING 子句来检索操作结果。 **3.1 插入记录示例** ```sql DECLARE Row_id ROWID; info ...
在SQL标准中,MERGE是一种DML(数据操纵语言)操作,它结合了INSERT、UPDATE和DELETE的功能。通过比较源表和目标表的数据,MERGE可以判断哪些记录需要添加、哪些需要更新或删除,从而实现数据的一致性。它的基本语法...
而处理包含占位符的DML语句时,如INSERT、UPDATE或DELETE,需要使用BIND_ARGUMENT来传递参数,语法为EXECUTE IMMEDIATE 'SQL命令' USING 参数列表。对于返回数据的DML语句,可以使用RETURNING INTO子句来捕获结果,...
以上内容覆盖了Oracle基础语法的重要方面,包括SQL分类、`SELECT FOR UPDATE` 语句、`LOCK TABLE` 命令、动态 SQL 以及表连接等核心概念。通过掌握这些知识点,你可以更有效地管理和操作Oracle数据库中的数据。
INSERT INTO php_session (sess_id, modify_time, sess_data) SELECT $1, CURRENT_TIMESTAMP, $2 WHERE NOT EXISTS (SELECT 1 FROM upsert); $set_session$ LANGUAGE SQL; -- 获取 session CREATE OR REPLACE...
4. 数据插入与查询:INSERT INTO插入数据,SELECT查询数据,UPDATE更新数据,DELETE删除数据。 五、新特性 1. 引入CTE(公共表表达式):允许在查询中定义临时结果集,增强复杂查询的可读性。 2. JSON增强:提供了...
除了 `SELECT`,`WITH` 子句还可以与 `INSERT`, `UPDATE` 和 `DELETE` 语句结合,使你在单个查询中执行多个数据库操作。例如,以下代码将删除 `COMPANY` 表中 `SALARY` 大于等于 30000 的记录,并将这些记录插入到新...