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) 不管是否查到数据,都会有一条结果。这是这条结果赋值给了变量,这才不会报错。

相关推荐
l1t2 小时前
DeepSeek总结的DuckLake 架构深度剖析-2
数据库·架构
YOU OU2 小时前
Redis事务
数据库·redis·缓存
数智化管理手记2 小时前
财务大数据怎么管住资金风险?财务大数据和财务数智化到底怎么结合?
大数据·网络·数据库·人工智能·数据挖掘
晓子文集2 小时前
Tushare接口文档:指数成分和权重(index_weight)
大数据·数据库·python·金融·量化投资
吴声子夜歌3 小时前
MongoDB 4.2——入门指南
数据库·mongodb
吴声子夜歌3 小时前
MongoDB 4.x——高可靠
数据库·mongodb
light blue bird3 小时前
组轴式执行引擎 ✅ 多线程调度组装组件
数据库·信息可视化·oracle·桌面端winform·多节点端·gdi图表绘制开发
码农学院3 小时前
Node.js MongoDB构建户外用品GEO优化内容管理平台
数据库·mongodb·node.js
吴声子夜歌3 小时前
MongoDB 4.x——治理经验
数据库·mongodb
黄华SJ520it4 小时前
门店预约系统开发:提升服务行业数字化转型
前端·数据库·系统开发