PL/SQL语言编程中异常分类及其处理

--预定义异常:系统已经声明的异常
DECLARE
V_NAME EMP.ENAME%TYPE;
BEGIN
SELECT ENAME INTO V_NAME FROM EMP WHERE EMPNO = 1234;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE(‘未查到数据‘);
WHEN OTHERS THEN
dbms_output.put_line(‘其他异常‘);
END;

--非预定义异常:系统异常,系统没有对其进行声明
DECLARE
e_fkexception EXCEPTION;
PRAGMA Exception_Init(e_fkexception,-2291);
BEGIN
INSERT INTO emp VALUES(8888,‘tom‘,‘CLERK‘,7902,SYSDATE,1900,NULL,50);
EXCEPTION
WHEN e_fkexception THEN
dbms_output.put_line(‘外键异常!‘);
WHEN OTHERS THEN
dbms_output.put_line(‘其他异常‘);
END;

--用户自定义异常
DECLARE
e_salexception EXCEPTION;
v_sal emp.sal%TYPE;
v_empno emp.empno%TYPE := &no;
BEGIN
SELECT sal INTO v_sal FROM emp WHERE empno = v_empno;
IF v_sal < 1000 THEN
RAISE e_salexception;
END IF;
EXCEPTION
WHEN e_salexception THEN
dbms_output.put_line(‘工资不能低于1000!‘);
END;

时间: 2025-01-11 06:23:20

PL/SQL语言编程中异常分类及其处理的相关文章

Oracle PL/SQL语言入门

简介:PL/SQL(Procedural Language/Structured Query Language)是一种过程化语言,属于第三代语言,它与C.C++.Java等语言一样关注于处理细节,可以用来实现比较复杂的业务逻辑.它允许SQL的数据操纵语言和查询语句包含在块结构(block_structured)和代码过程语言中,使PL/SQL成为一个功能强大的事务处理语言. 一.背景介绍 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通

PL/SQL存储过程编程

/**author huangchaobiao *Email:[email protected] */ PL/SQL存储过程编程(上) 1. Oracle应用编辑方法概览 答:1) Pro*C/C++/... : C语言和数据库打交道的方法,比OCI更常用; 2) ODBC 3) OCI: C语言和数据库打交道的方法,和ProC很相似,更底层,很少用; 4) SQLJ: 很新的一种用Java访问Oracle数据库的方法,会的人不多; 5) JDBC 6) PL/SQL: 存储在数据内运行, 其他

Oracle PL/SQL 语言(Procedural Language/SQL)

Oracle PL/SQL 语言(Procedural Language/SQL)是结合了结构化查询与 Oracle 自身过程控制为一体的强大语言,PL/SQL 不但支持更多的数据类型,拥有自身的变量声明.赋值语句,而且还有条件.循环等流程控制语句.过程控制结构与 SQL 数据处理能力无缝的结合形成了强大的编程语言,可以创建过程和函数以及程序包.PL/SQL 是一种块结构的语言,它将一组语句放在一个块中,一次性发送给服务器, PL/SQL引擎分析收到 PL/SQL 语句块中的内容,把其中的过程控

浅谈PL/SQL语言基础

在前面的学习中,我们大部分接触的都是SQL语言,但是,在实现复杂操作的时候,SQL语言就无能为力了,这时候就需要引入新的语言,PL/SQL语言就是对SQL语言的扩展,可以实现存储过程,函数等的创建.下面是我对PL/SQL语言的总结,和大家分享一下. 一.基本结构 1.PL/SQL是一种块结构的语言,它将一组语句放在一个块中,一次性发送给服务器,当PL/SQL引擎分析收到PL/SQL语句块中的内容,把其中的过程语句由PL/SQL引擎自身去执行,把PL/SQL语句块中的SQL语句交给服务器的SQL语

Oracle PL/SQL 高级编程

1. 复合数据类型--记录类型 ?        语法格式 type  类型名 is   record ( 字段1  字段1类型 [not null]:=表达式1; 字段2  字段2类型 [not null] :=表达式2; - ) ?        说明:记录之间相互赋值要求两个记录类型完全相同. ?        案例 举例1 --创建表并插入记录 create table student(idnumber, name varchar2(20), birthday date); insert

[C] 在 C 语言编程中实现动态数组对象

对于习惯使用高级语言编程的人来说,使用 C 语言编程最头痛的问题之一就是在使用数组需要事先确定数组长度. C 语言本身不提供动态数组这种数据结构,本文将演示如何在 C 语言编程中实现一种对象来作为动态数组. /* Author: [email protected] */ 基本的 C 数组 C 语言编程中声明一个基本数组如下: int main() { // 声明一个容纳 3000 个整数的数组 int my_array[3000]; } 以上代码做了两件事: ● 在栈区开辟内存空间.准确说来是在

oracle PL/SQL高级编程

PL/SQL高级编程 实验目的: 1.掌握PL/SQL的数据结构和编程结构,掌握应用PL/SQL编写简单程序的方法 2.理解存储过程的概念,掌握编写存储过程的方法 3.理解函数的概念,掌握编写存储过程的方法实验内容:一.PL/SQL编程基础1.pl/sql的组成:声明块.执行块.异常处理块2.编制代码实现1+2+...+100的计算declare n int; result int;begin n:=0; result:=0; while n<=100 loop result:=result+n

R语言编程中的常见错误

R语言编程中的常见错误有一些错误是R的初学者和经验丰富的R程序员都可能常犯的.如果程序出错了,请检查以下几方面.? 使用了错误的大小写.help().Help()和HELP()是三个不同的函数(只有第一个是正确的).? 忘记使用必要的引号.install.packages("gclus")能够正常执行,然而Install.packages(gclus)将会报错.? 在函数调用时忘记使用括号.例如,要使用help()而非help.即使函数无需参数,仍需加上().? 在Windows上,路

sql连接查询中的分类

sql连接查询中的分类 1.内连接(不留null) 1.1等值连接:关联条件的运算符是用等号来连接的. 1.2不等值连接:连接条件是出等号之外的操作符 1.3自然连接:特殊的等值连接,在同样的字段名存在的情况下,比较数据值是不是相等. 2.外连接(留null) 2.1左连接:以左表为准,即使右边没有满足连接条件对应的记录,左边也会出现在查询结果中,右边以空值出现. 2.2右连接:以右表为准,即使右边没有满足连接条件对应的记录,右边也会出现在查询结果中,左边以空值出现. 2.3全外连接:都可以出现