ORACLE SELECT INTO 赋值为空,抛出 NO DATA FOUND 异常

例子:

sql 复制代码
DECLARE ORDER_NUM VARCHAR2(20);
BEGIN
SELECT S.ORDER_NUM INTO ORDER_NUM FROM SALES_ORDER S WHERE S.ID=122344;
DBMS_OUTPUT.PUT_LINE('单号:' || ORDER_NUM);
END;

在查询结果为空的情况下,以上代码会报错:未找到任何数据

解决方法:

改为 SELECT MAX(S.ORDER_NUM) INTO ORDER_NUM FROM SALES_ORDER S WHERE S.ID=122344;

SELECT S.ORDER_NUM 查不到数据情况下,一条结果也没有;但 SELECT MAX(S.ORDER_NUM) 不管是否查到数据,都会有一条结果。这是这条结果赋值给了变量,这才不会报错。

相关推荐
christine-rr10 分钟前
linux常用命令——其他
linux·服务器·网络·数据库·redis·ubuntu
一只专注api接口开发的技术猿24 分钟前
容器化与调度:使用 Docker 与 K8s 管理分布式淘宝商品数据采集任务
开发语言·前端·数据库
tryxr31 分钟前
MySQL 之索引为什么选择B+树
数据库·mysql·b+树·索引
曦樂~1 小时前
【Qt】信号与槽(Signal and Slot)- 简易计算器
开发语言·数据库·qt
ZYMFZ1 小时前
python面向对象
前端·数据库·python
lang201509283 小时前
MySQL 8.0原子性DDL全面解析
数据库·mysql
viperrrrrrrrrr73 小时前
milvus向量数据库
数据库·大模型·llm·milvus
白衣鸽子4 小时前
MySql数据库同步技术:构建高可用架构的基石
数据库·后端
不良人天码星4 小时前
redis的事务,以及watch的原理
数据库·redis·缓存
韩立学长4 小时前
基于微信小程序的公益捐赠安全平台9hp4t247 包含完整开发套件(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·微信小程序·小程序