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

相关推荐
袋鼠云数栈44 分钟前
国产数据库StarRocks在数栈轻量化数据开发的全流程实践
数据库
Listennnn1 小时前
Text2SQL、Text2API基础
数据库·人工智能
夜光小兔纸1 小时前
SQL Server 修改数据库名及物理数据文件名
运维·数据库·sql server
····懂···1 小时前
数据库专家 OCP 认证培训:开启职业黄金赛道
数据库·oracle·ocp
明月看潮生2 小时前
青少年编程与数学 01-011 系统软件简介 18 Navicat数据库管理工具
数据库·青少年编程·系统软件·编程与数学
眸笑丶2 小时前
.NET Core 数据库连接字符串加密与解密
数据库·oracle·.netcore
layman05284 小时前
openEuler 虚拟机中 Shell 脚本实现自动化备份与清理实践
数据库·oracle·自动化
奔跑的小十一10 小时前
JDBC接口开发指南
java·数据库
熊大如如11 小时前
PostgreSQL 创建只读账户
数据库·postgresql
尽兴-12 小时前
达梦数据库CASE WHEN条件
数据库·oracle·达梦