解决Oracle报错ORA-01403: 未找到任何数据

news/2024/5/5 9:05:02/文章来源:https://blog.csdn.net/shaojiayong/article/details/126602597

发现问题

今天在执行某个存储过程的时候,遇到一个报错,提示我ORA-01403: 未找到任何数据
如图所示
在这里插入图片描述

问题分析

因为我的报错信息表里有记录着具体的报错位置,所以我很快的能够定位到问题所在,感觉这样找问题真的挺方便的,还是建议大家都把异常信息记录下来吧。
在这里插入图片描述
然后找到我的存储过程代码具体行
在这里插入图片描述
到这里差不多明白问题所在了,那是因为oracle中select into 语法不能将无结果集的数据赋值到变量中,那我们就要想办法把一个空或者默认值赋值给变量

解决问题

为了更好的模拟情况,我这边先创建一张空数据的测试表

create table TEST_USER
(name VARCHAR2(30),age  NUMBER(3)
);

方案一

先查询一遍看看有没有数据,再决定赋不赋值,但这种办法一般不推荐,比较啰嗦

DECLARErow_count int;--记录行数v_name VARCHAR2(30);v_age int;
BEGINselect count(1) into row_count from TEST_USER where id=1;--大于0代表有数据if row_count>0 thenselect name,age into v_name,v_age from TEST_USER where id=1;end if;DBMS_OUTPUT.PUT_LINE('v_name:'|| v_name || ', v_age: ' || to_char(v_age));
END;

方案二

利用dual表赋值,强烈推荐!!!

DECLAREv_name VARCHAR2(30);v_age int;
BEGIN-- 单字段赋值(适用: 只查一个字段、查询字段少且SQL短)SELECT (select name from TEST_USER where id=1) INTO v_name FROM DUAL;SELECT (select age from TEST_USER where id=1) INTO v_age FROM DUAL;DBMS_OUTPUT.PUT_LINE('v_name:'|| v_name || ', v_age: ' || to_char(v_age));-- 多字段赋值(使用: 查多个字段或SQL比较复杂)WITH TEMP AS (select name,age from TEST_USER where id=1)SELECT (SELECT name FROM temp),(SELECT age FROM temp) INTO v_name, v_age FROM dual;DBMS_OUTPUT.PUT_LINE('v_name:'|| v_name || ', v_age: ' || to_char(v_age));
END;

总结

赋值单字段或较少字段, SQL简单的情况,则可以采用单字段SQL赋值
赋值较多字段或多字段, SQL复杂的情况, 则可以采用 WITH TEMP AS + DUAL赋值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_3427.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NGINX基础知识:从零开始配置高性能服务器

NGINX基础知识:从零开始配置高性能服务器 学习从头开始安装和配置 NGINX Web 服务器。 课程英文名:NGINX Fundamentals High Performance Servers from Scratch 此视频教程共2.0小时,中英双语字幕,画质清晰无水印,源…

modbus如何添加从机以IO模块举列

连接部分 把两台MXXT设备都使用网线,连接到同一个交换机里面。找一台电脑也连接同交换机或者同局域网内。 软件设置 电脑上打开我们的MXXT配置软件。 点击左上角搜索设备。如上图,我们先双击192.168.1.130.默认密码:1234点确定,进…

云原生中间件RocketMQ-核心原理之同步_异步刷盘,同步_异步复制解析

文章目录发送逻辑消费逻辑刷盘机制同步刷盘异步刷盘配置同步/异步复制解析异步复制同步复制配置推荐使用发送逻辑 发送时,Producer将不同topic的所有消息都会顺序写入Commit Log中,Broker端的后台服务线程—ReputMessageService不停地分发请求并异步构建…

远程连接elasticsearch

做分布式或者集群的时候,需要对elasticsearch做些配置才可以通过端口访问,我这里是以阿里云为例。 前置要有java环境变量。 在阿里云安全组里面开放9200和9300端口,9200用于测试端口是否连上和查看状态。 elasticsearch国内镜像:…

在线客服系统的优势

对于各电商企业来说,在线客服作为直接触达客户的门面,起着至关重要的作用,而优质的话术可以起到催化剂的作用,而快捷回复就是必备工具。 前言 对于各电商企业来说,在线客服作为直接触达客户的门面,起着至关…

深入Spring Boot :整合Redis详解

Spring Boot为Redis的Lettuce和Jedis客户端库提供了基本的自动配置,并且可以使用Spring Data Redis完成更多的操作。本篇将介绍如何整合Redis及使用Redis实现简单的查询缓存,主要包括以下7部分内容: 缓存 Redis Lettuce Spring Data Redis…

瑞吉外卖 —— 2、后台登录和登出

1、后台登录功能 1.1、接口分析 通过浏览器调试工具 F12 可以发现,在登录页面点击登录后,发送 POST 请求 http://localhost:8080/employee/login ,并将输入的账号和密码信息以 JSON 格式发送给后台 前端校验代码如下: 1.1.2、登…

Hadoop源码解析之Mapper数量计算公式

前言 据说,自0.20.0版本开始,Hadoop同时提供了新旧两套MapReduce API,并在后续版本中也同时支持这两种API的使用。新版本MR API在旧的基础进行了扩展,也制定了新的split计算方式。新版本MR API在包org.apache.hadoop.mapreduce及…

Python基于Django的汽车销售网站

本汽车销售商城采用的数据库是Mysql,使用Django框架开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 汽车销售商城主要是为了提高工作人员的工作效率和更方便快捷的满足用户…

Win7下安装Docker(虚拟机win7)

在虚拟机VM里面安装一个win7用于安装Docker docker-toolbox-windows-docker-toolbox安装包下载_开源镜像站-阿里云 直接下载圈起来的这个就好了 直接拷贝到虚拟机系统win7里面安装,全部勾起来直接下一步安装即可 安装好后,会有三个图标 直接点击Dock…

自动化情侣微信早报信息定时推送

文章目录一、效果展示二、配置config.txt(重点)2.1 填写appID和appsecret2.1 创建测试模板填写template_id2.4 填写user2.5 填写weather_key2.6 填写剩下其他框选内容即可三、运行软件3.1 选择config.txt文件并设定时间3.2 运行软件3.3 效果展示一、效果…

12种解决CSS旧问题的新技巧

如果您一直在使用CSS,那么很可能会遇到一些布局或跨浏览器兼容性等问题。例如,CSS3的样式不太适用于IE的某些旧版本。而有时候,当我们准备使用某项功能时,却发现它无法广泛地得到各种浏览器的行为支持。因此,在从事Web…

第13章Linux实操篇-进程管理(重点)

第13章Linux实操篇-进程管理(重点) 文章目录第13章Linux实操篇-进程管理(重点)13.1基本介绍13.2显示系统执行的进程13.2.1基本介绍13.2.2ps详解13.2.3应用实例13.3终止进程kill和killall13.3.1介绍13.3.2基本语法13.3.3最佳实践13.4查看进程树pstree13.4.1基本语法13.4.2常用选…

Vue.js核心技术解析与uni-app跨平台实战开发学习笔记 第12章 Vue3.X新特性解析 12.1 Vue3.0 新特性

Vue.js核心技术解析与uni-app跨平台实战开发学习笔记 文章目录Vue.js核心技术解析与uni-app跨平台实战开发学习笔记第12章 Vue3.X新特性解析12.1 Vue3.0 新特性第12章 Vue3.X新特性解析 12.1 Vue3.0 新特性 Vue3.0 中需要重点关注的两个新特性: 双向数据绑定的原…

JVM资料阅读笔记总结-1

前言 最近读周志明的《深入理解Java虚拟机》以及半栈工程师的Java虚拟机文章,对JVM又重新复习了一遍,每次看后收获都不一样(因为没有debug能力,还是很懵懂),担心会忘记将自己读后总结记录下来 总结内容 j…

期货开户止损是通向成功的保障

一、情绪波动止损法: 如果买入股票后,感觉不好,寝食难安,这说明自己认为买入理由不充分或信心不足,这将影响今后的正常操作,故应果断卖出离场。 二、空间位移止损法: 1、 初始止损法&#xf…

调用MapReuce对文件中各单词出现次数统计

调用MapReduce对文件中各单词出现次数统计 调用MapReuce对文件中各单词出现次数统计一、安装环境二、需求分析 1.创建hadoop账户2.设置Hadoop密码3.为Hadoop用户增加管理员权限4.更新apt5.安装vim6.安装SSH、配置SSH无密码登陆 三、安装java环境 1.安装JDK2.验证JDK安装情况3.…

SpringBoot 启用 GZIP 对响应进行压缩

SpringBoot Web 应用默认是不启用响应数据的压缩,对大的文本类型的响应数据进行压缩是十分必要的,如 JSON, XML 等应用数据,甚至是 JS, CSS 等。 早先的 Web 应用基本是要配置一个叫做 GzipFilter 之类的东西,然后判断请求的 Acc…

Windows与网络基础-1-2-虚拟机安装Windows10和window server2016

目录 一、虚拟机安装软件和ios镜像文件 二、新建虚拟机 2.1 文件—>新建虚拟机 2.2 选择典型安装 2.3 选择稍后安装 2.4 选择操作系统类型和版本 2.5 虚拟机名称和安装路径 2.6 指定磁盘大小 2.7 配置硬件信息 2.8 进入系统安装界面 2.9 选择系统版本 2.10 选择自…

LeetCode精选200道--二叉树篇(二)

二叉树篇(二)前言完全二叉树的节点个数普通二叉树逻辑递归完全二叉树逻辑平衡二叉树题外话递归二叉树的所有路径思路递归相同的树100. 相同的树另一棵树的子树左叶子之和思路找树左下角的值思路112. 路径总和思路106. 从中序与后序遍历序列构造二叉树根据…