SELECT INTO STATEMENT将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)例子:BEGINSELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx;EXCEPTIONWHEN NO_DATA_FOUND THENxxxx;END;

但是当查询SELECT INTO 时可能有多个记录 ,一个记录, 没有记录的情况。

一   当查询结果没有记录的时候会报错:data not found 错误。

为了防止这种错误,需要预先进行查询

可以在该语法之前,先利用select count(*) from 查看数据库中是否存在该记录,如果存在,再利用select...into...

或者添加异常处理模块:WHEN NO_DATA_FOUND THEN

when NO_DATA_FOUND then --未找到时
处理逻辑
when exception_code then --这里的错误代码可以在standard包中找到
处理逻辑
when OTHERS then --default错误时
处理逻辑
end;
错误代码可通过如下语句获得:
select * from dba_source where owner='SYS' and name='STANDARD' and type='PACKAGE' and text like ' pragma EXCEPTION%';

二   在使用SELECT …INTO语句时,变量名和数据表中的字段名不能相同,否则会出错。

例如:代码中变量名和数据表中的名为了区分开在变量名前加了【p_】用来区分变量名和数据表名。

     > CREATE  PROCEDURE get_address(->      IN p_playerno SMALLINT,->      OUT p_street VARCHAR(30),->      OUT p_houseno VARCHAR(4),->      OUT p_town VARCHAR(30),->      OUT p_postcode VARCHAR(6))  ->  BEGIN    ->      SELECT street, houseno, town, postcode->      INTO p_street, p_houseno, p_town, p_postcode->      FROM PLAYERS->      WHERE playerno = p_playerno;           ->  END$$

三  在使用SELECT ....INTO时必须在字段后紧跟着INTO,不然会报错

  select af.keynode into kn from APPFOUNDATION af where af.appid=aid and af.foundationid=fid;-- 有into,正确编译select af.keynode from APPFOUNDATION af where af.appid=aid and af.foundationid=fid;-- 没有into,编译报错,提示:Compilation Error: PLS-00428: an INTO clause is expected in this SELECT statement

参考鸣谢(如有侵权联系删帖):oracle 存储过程的基本语法 及注意事项 - 快乐就好 - 博客园oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字( 参数1 IN NUMBER, 参数2 IN NUMBER) IS变量1 INTEhttps://www.cnblogs.com/happyday56/archive/2007/07/05/806830.html

面试问题总结之数据库存储过程SELECT INTO相关推荐

  1. Java 面试知识点解析(六)——数据库篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  2. mysql过程异常处理_mysql数据库存储过程异常处理

    14.1.4  定义条件和处理程序 定义条件和处理程序是事先定义程序执行过程中可能遇到的问题.并且可以在处理程序中定义解决这些问题的办法.这种方式可以提前预测可能出现的问题, 并提出解决办法.这样可以 ...

  3. oracle数据库存储过程中NO_DATA_FOUND不起作用解决

    oracle数据库存储过程中NO_DATA_FOUND不起作用 1.首先创建一个表lengzijiantest,表中只有一个字段f_id ? 1 2 3 4 5 [cpp] CREATE TABLE ...

  4. JDBC对MySQL数据库存储过程的调用

    一.MySQL数据库存储过程: 1.什么是存储过程 存储过程(英文:Stored Procedure)是在大型数据库系统中,为了完毕特定功能而编写的一组的SQL语句集.存储过程经编译存储在数据库中.用 ...

  5. mysql数据库存储过程及调用方法

    mysql数据库存储过程及调用方法 mysql5.0以后就支持存储过程了,目前mysql的6.0Alpha版也已经推出.6.0不仅支持大型数据库如oracle等的绝大部分功 能,如存储过程.视图.触发 ...

  6. jdbc存储过程mysql_JDBC对MySQL数据库存储过程的调用

    1.什么是存储过程 存储过程(英文:Stored Procedure)是在大型数据库系统中,为了完成特定功能而编写的一组的SQL语句集.存储过程经编译存储在数据库中,用户通过指定存储过程的名字并给出参 ...

  7. 易语言 存储过程 mysql_在易语言中调用MS SQL SERVER数据库存储过程(Transact-SQL)方法总结...

    作者:liigo 日期:2010/8/25 Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接 ...

  8. java调用数据库存储过程的接口是_JAVA调用数据库存储过程

    JAVA调用数据库存储过程 2014/11/6 18:20:14  可怜的猫  程序员俱乐部  我要评论(0) 摘要:packagecom.ljq.test;importjava.sql.Connec ...

  9. 具体的数据库存储过程的编写

    坚持写blog,我来了! 昨天写了点算是数据库存储过程的学习心得,可能是很多做过的人都知道的东西,有经验的达人们多来我这看看,给予指点,同时也欢迎对我blog里东西感兴趣的兄弟们常来看看,共同学习哈! ...

最新文章

  1. 同样是AI技术,为什么只有一加6称得上“全速”旗舰?
  2. SpringMVC的数据响应-页面跳转-返回ModelAndView形式1(应用)
  3. 简略图解:输入 url 到出现页面,浏览器做了什么?
  4. chrome 90的新功能(new feature in chrome 90)
  5. 7-6 考试座位号 15 分 C语言代码,PAT Basic 1041. 考试座位号(15)(C语言实现)
  6. POJ1164 The Castle【DFS】
  7. 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现系统参数配置保存,附源码...
  8. 定义CPU阀值(转)
  9. Linux 内核 SMP 代码追踪 --- cpumask
  10. pytorch固定BN层参数
  11. 赤兔oracle恢复软件 收费,赤兔Oracle数据库恢复软件 v11.6
  12. pdproxy度盘下载器不限速(xp版也可用) v2021
  13. springboot 热插拔JRebel
  14. 产品破局思考:一个思维,一种策略
  15. 如何用光盘自动安装win7操作系统
  16. K8S 1.18.0 以及KubeEdge 1.10.3 三机安装部署(含过程记录及遇到的报错和解决方法)
  17. 医院管理信息系统 HIS EMR PACS LIS
  18. Zotero:如何定制参考文献样式——以《世界经济》中文期刊为例
  19. $().each和$.each()
  20. 2018刚入手一台UGP U8VR眼镜,ugp vr眼镜怎么样评测效果好不好,跟我看看

热门文章

  1. 笔记本安装ubuntu18.04步骤及分区方法
  2. sqli-labs通关详解
  3. oracle 10046详解,深入理解Oracle调试事件:10046事件详解
  4. 习惯一:积极主动--个人愿景的原则
  5. git长时间未清理无法拉取代码( git Auto packing the repository in background for optimum performance)
  6. 升级360极速浏览器,chrome78版本
  7. 算术移位和逻辑移位的区别
  8. itext html 转换 pdf文件,利用itext将html文件转化pdf文件(5)——多个文件的合并
  9. java项目如何启动tomcat服务器,Java web项目启动Tomcat报错解决方案
  10. 服务器支持m2固态,关于IBM X3650M2和固态硬盘的若干问题