Oracle中Returning into语句的总结

本文介绍了ORACLE数据库中DML语句结合RETURNING子句的应用技巧,包括DELETE、INSERT及UPDATE操作后的结果返回,指出INSERT INTO SELECT与MERGE语句不支持RETURNING特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ORACLE的DML语句中可以指定RETURNING语句。使用起来也很简单,和SELECT INTO语句没有多大区别。RETURNING语句的使用在很多情况下可以简化PL/SQL编程。

  DELETE操作:RETURNING返回的是DELETE之前的结果;
  INSERT操作:RETURNING返回的是INSERT之后的结果;
  UPDATE操作:的RETURNING语句是返回UPDATE操作之后的结果。 

  INSERT INTO SELECT语句不支持。
  MERGE语句不支持RETURNING语句。

 

摘自:http://wallimn.iteye.com/blog/522401

### DM8 数据库中 RETURNING 语句的支持情况 DM8 数据库确实支持 SQL 的 `RETURNING` 语句。该功能允许在执行 DML 操作(如 `INSERT`、`UPDATE` 和 `DELETE`)的同时返回受影响的列数据,从而减少额外查询的需求并提高效率[^4]。 以下是关于如何在 DM8 中使用 `RETURNING` 语句的一个简单示例: #### 使用 `RETURNING` 语句的例子 假设有一个名为 `employees` 的表,结构如下: | id | name | salary | |----|---------|--------| | 1 | Alice | 5000 | | 2 | Bob | 6000 | 如果希望更新某员工的工资并将新旧工资记录下来,则可以这样操作: ```sql DECLARE old_salary NUMBER; new_salary NUMBER := 7000; BEGIN UPDATE employees SET salary = new_salary WHERE id = 1 RETURNING salary INTO old_salary; dbms_output.put_line('Old Salary: ' || old_salary); END; ``` 上述代码片段展示了通过 `RETURNING ... INTO` 将被修改前后的字段值捕获到 PL/SQL 变量中的方法[^4]。 需要注意的是,在某些情况下可能还需要结合游标或者绑定变量一起工作以便更灵活地处理多行或多列的结果集。对于这种情况下的具体实现方式可参照定义游标的通用语法[^3]。 ### 关于其他特性补充说明 除了基本的 `RETURNING` 功能外,DM8 还提供了丰富的性能诊断工具。例如它具有类似于 Oracle AWR 报告的功能,这可以通过调用 `DBMS_WORKLOAD_REPOSITORY` 包内的过程来自动生成负载仓库快照以及相应的分析报告[^2]。 #### 总结 综上所述,DM8 不仅全面兼容标准 SQL 的 `RETURNING` 子句用于简化应用程序逻辑设计;而且也继承了前辈版本诸多优秀的管理维护机制,像前面提到的工作负荷存储库等功能都极大地方便了日常运维管理工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值