--  存储过程结结构。
--  EXCeption不是存储过程必须部分,可以用作本存储过程的异常处理,但如果没有异常处理,出了异常将会终止程序
CREATE PROCEDURE procedure_name ()
IS/AS
BEGIN-- ....
  EXCEPTION -- ...
END;--  PL/SQL代码块是什么?
--  下面就是。
--  EXCeption不是PL/SQL必须部分,可以用作本PL/SQL代码块的异常处理,但如果没有异常处理,出了异常将会终止程序
BEGIN-- ....
  EXCEPTION -- ...
END;-- ======================================
----  昨天说,一个存储过程里可以有多个PL/SQL代码块
-- ======================================
--也就是说可以这样
CREATE PROCEDURE procedure_name ()
IS/AS
BEGIN-- .PL/SQL代码块 1:BEGIN-- .... -- 此处出了异常,-- 因为作了处理,本代码块将不执行,但程序可以继续-- 也就是说  PL/SQL代码块2 ,PL/SQL代码块3还可以执行EXCEPTION --异常处理-- ...END;-- .PL/SQL代码块 2:BEGIN-- ....如果此处出了异常,-- 因为本PL/SQL 未做异常处理,那么就只有两种结果-- 1、存储过程有异常处理,可以处理这个异常,于存储过程的异常处理来说,只要进了这个异常,本PL/SQl代码做完异常处理后,程序也将无法继续-- 2、存储过程有异常处理但无法处理该异常,或者存储过程没有异常处理,程序出错,将无法继续执行-- 上面两种情况都会导致 ,程序无法继续,简单说, PL/SQL代码块3不会执行END;-- .PL/SQL代码块 3:BEGIN--...
          EXCEPTION--..END;-- ... 存储过程的异常处理
  EXCEPTION -- ...。。
END;

eg:

DECLARE v_my_err EXCEPTION;v_i INTEGER ;
BEGINFOR v_i IN 1..10LOOP    BEGIN IF v_i=3 THENRAISE v_my_err;ELSE dbms_output.put_line(v_i);END IF;EXCEPTIONWHEN v_my_err THENdbms_output.put_line('我有异常处理,下面的继续');END;BEGIN IF v_i=6THENdbms_output.put_line('我没有异常处理,出了异常下面的不执行');RAISE v_my_err;ELSE dbms_output.put_line(v_i);END IF;END;END LOOP;
EXCEPTIONWHEN OTHERS THEN dbms_output.put_line('出了异常,结束');
END;

转载于:https://www.cnblogs.com/jiaxinwei/p/10319156.html

Oracle SQL存储过程结构、异常处理示例相关推荐

  1. oracle ora 47306,Oracle SQL提示含义与示例 --- 分布式查询和并行提示

    <Oracle 高性能SQL引擎剖析:Oracle SQL 优化与调优技术详解>一书的附录部分.作为对该书的补充,帮助读者理解和掌握"提示"这一项在SQL优化中使用的这 ...

  2. Oracle SQL标准结构化语言练习

    一.说明 Oracle登录方式(两种方式) 1.直接在SQL plus中登录 在此登录过程中密码默认不进行回显在输入过程中不显示任何东西但是可以成功登录 也可以用cmd命令行形式登陆 SQLplus ...

  3. SQL server 定时自动执行SQL存储过程

    当一个存储过程是为了生成报表,并且是周期性的,则不需要人工干预,由SQL作业定时自动执行些SQL存储过程即可. 本示例,假设已需要定时执行的存储过程为:Pr_test 工具/原料 SQL Server ...

  4. Oracle PL/SQL 存储过程

    Oracle PL/SQL 存储过程 Oracle 简介: 是甲骨文公司的一款关系数据库管理系统.它是在数据库领域一直处于领先地位的产品.可以说Oracle数据库系统是目前世界上流行的关系数据库管理系 ...

  5. oracle sql loop merge,Oracle之存储过程和MERGE INTO语句

    一.MERGE INTO语句 1.merge into语句的功能:我们操作数据库的时候,有时候会遇到insert或者Update这种需求.我们操纵代码时至少需要写一个插入语句和更新语句并且还得单独写方 ...

  6. Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作

    Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很 ...

  7. oracle sql循环判断语句怎么写,Oracle 非常详细的 PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理...

    PL/SQL入门教程目录 Oracle PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理 一.PL/SQL简介 1.PL/SQL简介 1.PL/SQl是过程语言PL与结构化语言 ...

  8. java oracle sql 参数_oracle pl/sql之在java中调用带有输入输出参数的oracle存储过程...

    只需注意一点输出参数是用CallableStatement里面的registerOutParameter方法注册进去 存储过程: import java.sql.CallableStatement; ...

  9. oracle 存储过程 胡勇,Oracle SQL:经典查询练手第二篇

    本文与大家共同讨论与分享ORACLE SQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来.在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出.交流与分享才能 ...

最新文章

  1. 《评人工智能如何走向新阶段》后记(再续1)
  2. python尝试不同的随机数进行数据划分、使用卡方检验依次计算不同随机数划分下训练接和测试集所有分类特征的卡方检验的p值,如果所有p值都大于0.05则训练集和测试集都具有统计显著性、数据划分合理
  3. 第104天:web字体图标使用方法
  4. 阿里云上创建个人网站
  5. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170413
  6. html访问java接口出现缓存_一个牛逼的多级缓存实现方案
  7. PyTorch——PyTorch也支持通过累加操作实现大的BatchSize的训练
  8. 微信聊天记录删除怎么恢复?iOS安卓数据迁移
  9. leetcode 189. 旋转数组(Rotate Array)
  10. 数据结构11——KMP
  11. 计算机的二进制算法与易图中,A.黑色素瘤B.脂肪瘤C.纤维瘤D.血管瘤E.皮脂腺囊肿1.好发于皮下、界限清楚、分叶状、生长较慢的肿瘤是()2.好发于皮下、质硬、生长缓慢的舯瘤是()...
  12. python找不到指定的模块是什么意思_python找不到指定模块怎么办
  13. Python实现一键生成微信好友头像墙
  14. 梦熊杯-十二月月赛-白银组题解-D.智慧
  15. 在word中怎么把文字往下挪挪_word排版技巧:如何对页面文本段落快速调整
  16. java词云生成,kumo项目详解
  17. linux如何运行synaptic,在Debian系统中安装Synaptic和使用Synaptic修复损坏的包
  18. echart 世界地图发光_Echarts世界地图中国分区显示
  19. 基于 Webpack 4 搭建 Vue 开发环境
  20. STM32F4 FFT 音乐频谱 不要太easy!

热门文章

  1. HTTP协议学习---(三)摘要认证
  2. [NOIP2003] 提高组 洛谷P1041 传染病控制
  3. Myeclipse 使用JUnit 进行单元测试
  4. javascript简易缓动插件
  5. 站内搜索 调用方法 (谷歌 百度 雅虎)
  6. TCP/IP网络编程(3)
  7. 7-13 日K蜡烛图
  8. python appium api pc_Appium Python API 中文版
  9. 万圣趴的神秘南瓜仙人,送你3本惊喜Python好书
  10. Marco:Filecash全网算力增加的趋势,将形成FIC价格上升的良性循环