利用 DML的RETURNING 语句可以返回刚刚操作的记录的信息,然后可以马上用于判断,这样避免了再次使用SQL语句做一次SELECT,提高了程序的性能,具体例子如下,注意UPDATE和DELETE返回值的差别:
CREATE OR REPLACE PROCEDURE test_returning
IS
v_empno emp.empno%TYPE;
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
INSERT INTO emp(empno,ename,sal)VALUES(1234,'SHADOW',4000)
RETURNING ename,sal INTO v_ename,v_sal;
dbms_output.put_line(SQL%ROWCOUNT);
dbms_output.put_line(v_ename);
dbms_output.put_line(v_sal);
UPDATE emp SET sal=3000 WHERE empno=1234
RETURNING ename,sal INTO v_ename,v_sal;
dbms_output.put_line(SQL%ROWCOUNT);
dbms_output.put_line(v_ename);
dbms_output.put_line(v_sal);
DELETE FROM emp WHERE empno=1234
RETURNING ename,sal INTO v_ename,v_sal;
dbms_output.put_line(SQL%ROWCOUNT);
dbms_output.put_line(v_ename);
dbms_output.put_line(v_sal);
END;
/
运行如下:
SQL> @g:/orcl/returning.sql
过程已创建。
SQL> exec test_returning
1
SHADOW
4000
1
SHADOW
3000
1
SHADOW
3000
PL/SQL 过程已成功完成。
参考http://hi.baidu.com/kongzong/blog/item/184f97cafd39ff86c8176825.html
分享到:
相关推荐
1. **明确横切关注点**:在使用@AfterReturning 之前,确保你已经识别出了需要在目标方法执行后处理的横切关注点,如日志记录、性能监控或事务管理。 2. **合理定义切入点**:使用切入点表达式精确地定义哪些方法...
python库。 资源全名:django_pg_returning-1.0.0-py2.py3-none-any.whl
《深入理解FindBugs:可能通过返回暴露内部表示——“NULL”问题分析》 在软件开发过程中,确保代码的质量和安全至关重要。FindBugs作为一款静态代码分析工具,能够帮助开发者在程序运行前发现潜在的问题。...
"attr_copy.rar_The_Returning"这个标题暗示我们关注的是一个与复制文件属性相关的程序或函数,可能是一个C语言编写的源代码文件,即"attr_copy.c"。这个程序的功能是复制一个属性列表,并返回所占用的字节数。 `...
9.4小节“Returning Updated Rows”讨论了在执行Model操作后如何获取更新后的行。在执行涉及Model子句的DML操作时,我们可能需要查看或验证哪些行被修改了,或者新状态是什么。通常,SQL更新操作不会返回更新的行,...
"An Eco-tour of returning to nature.zip"这个压缩包文件为我们提供了一份关于生态旅游的详细资料,引领我们踏入一场回归自然的探索之旅。 首先,生态旅游(Eco-tourism)是一种尊重环境、保护生物多样性和促进...
Oracle的RETURNING子句是数据库操作中的一个强大特性,它允许在执行INSERT、UPDATE或DELETE语句时直接获取处理的数据结果。这在处理事务时非常有用,尤其是当你需要基于新插入或更新的数据进行进一步操作时。 1. **...
标题 "returning-DOM-elements-javascript-源码.rar" 暗示了这是一个关于使用JavaScript操作和检索DOM元素的源代码集合。DOM(Document Object Model)是HTML和XML文档的结构化表示,允许通过编程方式访问和修改文档...
Spring AOP 定义 AfterReturning 增加实例分析 Spring AOP (面向方面编程) 是 Spring 框架中的一种编程范式,旨在将切面编程融入到应用程序中。AfterReturning 是 Spring AOP 中的一种Advice (通知),它在目标方法...
Dec 17 13:59:26 localhost kernel: PAL Shim AllocRequest returning NULL Dec 17 13:59:26 localhost kernel: PAL Shim AllocRequest returning NULL Dec 17 13:59:26 localhost kernel: PAL Shim AllocRequest ...
在本篇博文中,我们将深入探讨Spring AOP(面向切面编程)中的一个重要概念——AfterReturning通知,这是Spring框架提供的一种强大的功能,允许我们在方法成功执行并返回后执行额外的操作。我们将通过源码分析和实际...
是错误报告: The specified CGI application misbehaved by not returning a complete set of HTTP headers 意思是:(http协议的CGI模式运行不正确) 因为perl脚本的第一句中不支持 -wT 参数,将所有的 -wT 替换成...
- **May expose internal representation by returning reference to mutable object**:调用get方法,获得对象属性,获得的对象属性是一个可变的对象。 - **描述**:返回内部可变对象的引用,可能会导致外部实体...
我们可以通过实现`AfterReturningAdvice`接口并定义一个`afterReturning`方法来创建此类通知。这个方法接收四个参数:返回值、目标对象、方法名和方法参数,这使得我们可以访问方法执行的所有相关信息。 2. **...
Returning IDOK.INSTALLMESSAGE_ERROR[无法将数值 PresentationHost.exe 写入键] \Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_LEGACY_COMPRESSION。请验证您对该键拥有足够的访问权限,或者...
在C++编程语言中,函数是执行特定任务的代码块,可以接受输入(参数)并产生输出(返回值)。函数的返回值是函数执行完成后传递回调用位置的数据。本主题将深入探讨C++中函数参数及返回值的使用。...
`returning-DOM-elements-javascript`这个主题主要聚焦于如何在JavaScript中获取和操作DOM元素。下面将详细讨论相关知识点。 1. **选择DOM元素** - `getElementById()`: 这是JavaScript中最基本的选择方法,通过...