PL/SQL中异常的处理
DECLARE
…;
BEGIN
…;
EXCEPTION
WHEN 异常情况1 [OR 异常情况2…] THEN
…;
WHEN异常情况3 [OR 异常情况4…] THEN
…;
WHEN OTHERS THEN
…;
END;
DECLARE
TMP_NAME VARCHAR(10);
BEGIN
SELECT ENAME INTO TMP_NAME FROM EMP;
DBMS_OUTPUT.PUT_LINE(TMP_NAME) ;
EXCEPTION
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('返回了太多行') ;
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('出现了其他异常') ;
END;
用户自定义异常处理
DECLARE
OUT_OF_STOCK EXCEPTION;
NUMBER_ON_HAND NUMBER;
BEGIN
…
IF NUMBER_ON_HAND < 1 THEN
RAISE OUT_OF_STOCK;
END IF;
…
EXCEPTION
WHEN OUT_OF_STOCK THEN
--HANDLE THE ERROR
END;
DECLARE
TMP_NAME VARCHAR(10);
MY_EXCEPTION EXCEPTION ;
BEGIN
SELECT ENAME INTO TMP_NAME FROM EMP WHERE EMPNO=7369;
DBMS_OUTPUT.PUT_LINE(TMP_NAME) ;
IF TMP_NAME <> 'LYF' THEN
RAISE MY_EXCEPTION ;
END IF ;
EXCEPTION
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('返回了太多行') ;
WHEN MY_EXCEPTION THEN
DBMS_OUTPUT.PUT_LINE('该用户不是lyf') ;
END;
变量类型的声明
DECLARE
MY_NAME VARCHAR(10);
TMP_NAME MY_NAME%TYPE;
--TMP_NAME EMP.ENAME%TYPE;
BEGIN
SELECT ENAME INTO TMP_NAME FROM EMP WHERE EMPNO=7369;
DBMS_OUTPUT.PUT_LINE(TMP_NAME) ;
END;
组合变量record:
-
record可以同时存储不同的数据类型,这有点像javabean
DECLARE
type test_record is record(
a number(2),
b varchar2(10)
);
firstRecord test_record;
BEGIN
firstRecord.a:=12;
firstRecord.b:='lbx';
DBMS_OUTPUT.put_line (firstRecord.b);
END;
组合变量%rowtype
DECLARE
v_emp emp%rowtype;
BEGIN
v_emp.empno:=1111;
v_emp.enam
DBMS_OUTPUT.put_line (v_emp.empno);
DBMS_OUTPUT.put_line (v_emp.ename);
DBMS_OUTPUT.put_line (v_emp.sal);
e:=’lbx’;
v_emp.sal:=10000;
END;
PL/SQL中的SQL语句:
n Select语句:
q 必须与into结合使用
q 只能返回一条记录,不能多,也不能少。
q 示例:
n select ename,sal into v_ename,v_sal from emp where empno = 7369;
n DML语句:
q 可以直接使用,与SQL中完全一样
q 如果想让DML语句起作用或者回退的话,需要显式的调用commit或者rollback
n DDL语句
q 需要使用execute immediate语句
q 示例:
n execute immediate ‘create table test (a varchar2(20), b number(3))’;
测试select语句:
DECLARE
v_ename emp.ename%type;
v_sal emp.sal%type;
BEGIN
select ename,sal into v_ename,v_sal from emp
where empno = 7369;
DBMS_OUTPUT.put_line (v_ename);
DBMS_OUTPUT.put_line (v_sal);
END;
|
测试DML语句:
DECLARE
v_ename emp.ename%type;
v_sal emp.sal%type;
BEGIN
insert into emp (empno,ename,sal) values ('1','aa','11');
DBMS_OUTPUT.put_line (v_ename);
DBMS_OUTPUT.put_line (v_sal);
-- commit;
--rollback;
END;
select * from emp;
rollback;
|
测试DDL语句:
DECLARE
BEGIN
execute immediate 'create table test2 (a varchar2(20), b number(3))';
END;
|
分享到:
相关推荐
这个"PL/SQL最新中文手册"显然是一份详细解释PL/SQL 7.0版本的指南,对于学习和精通Oracle数据库编程至关重要。以下是手册可能涵盖的一些核心知识点: 1. **PL/SQL基础**:手册可能会从基础开始,介绍PL/SQL的基本...
通过深入学习Oracle 10g PL/SQL,不仅可以掌握数据库编程的基本技能,还能了解如何利用这些技能来设计和实现复杂的业务逻辑,优化数据库性能,以及更好地维护和管理Oracle数据库系统。本教程涵盖了所有这些关键知识...
以下是对"Oracle PL/SQL学习官方教材"中可能包含的主要知识点的详细解释: 1. **基础概念**:首先,教材会介绍PL/SQL的基本概念,包括块(Block)、变量(Variable)、常量(Constant)、数据类型(Data Types)和...
2. **数据处理**:通过PL/SQL,用户可以直接对数据库表进行增删改查操作,使用SELECT、INSERT、UPDATE、DELETE等SQL语句。 3. **游标**:PL/SQL支持游标,允许用户逐行处理查询结果,这对于处理大量数据时非常有用...
在这个“PL/SQL学习资料”压缩包中,包含了十一个PDF文件,覆盖了从基础到进阶的广泛主题。下面我们将详细探讨这些知识点。 1. **PL/SQL基础知识**: - PL/SQL结构:了解块的概念,包括声明部分、执行部分和异常...
PL/SQL是Oracle公司开发的一种过程化SQL扩展,它是Oracle数据库的重要组成部分,用于在数据库服务器上编写存储过程、函数、触发器、包等可执行...通过学习和掌握PL/SQL,开发者可以构建高效、复杂的数据库应用程序。
Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据处理能力与PL的程序设计...通过实践和学习"Oracle PL/SQL实战(待续)"的相关内容,我们可以提升在Oracle环境中解决问题的能力,更好地管理和优化数据库系统。
这个“PL/SQL学习资料”压缩包包含了对这一编程语言深入理解和应用的关键知识点。 PL/SQL由三部分组成:声明部分、执行部分和异常处理部分。在声明部分,我们可以定义变量、常量、游标、记录类型等;执行部分用于...
以下是对PL/SQL的学习笔记的详细解析: 1. **什么是PL/SQL语言** PL/SQL是Oracle数据库为数据库管理员和开发人员设计的一种编程语言。它扩展了SQL的功能,允许编写包含控制结构、变量、过程和函数的程序段,这些...
在学习PL/SQL的过程中,理解这些基本概念和结构是至关重要的。通过实践编写存储过程、函数和触发器,你可以逐渐掌握PL/SQL的强大功能,并利用它来解决实际的数据库编程问题。对于初学者来说,循序渐进、结合实例学习...
2. **流程控制**:PL/SQL支持条件语句(IF-THEN-ELSE、CASE)和循环语句(FOR、WHILE、LOOP)。这使得我们能够在处理数据时根据不同的条件执行不同的逻辑。 3. **集合和游标**:集合是PL/SQL中处理多行数据的有效...
2. **存储过程和函数**:这些是PL/SQL的核心组成部分,它们封装了一系列操作,可以被多次调用,提高代码复用性。书中可能包含各种示例,如自定义计算函数、处理业务逻辑的存储过程等。 3. **触发器**:当数据库中的...
第二章“访问Oracle”将探讨如何通过PL/SQL连接到Oracle数据库,使用连接字符串、用户认证和游标来操作数据。这部分内容对于理解如何在PL/SQL环境中执行数据库查询至关重要。 第三章“控制结构”深入讲解了PL/SQL中...
- **集合与记录**:学习如何使用PL/SQL中的集合和记录类型,这些结构可以帮助更高效地处理数据集。 - **游标**:介绍游标的使用方法,包括隐式游标和显式游标,以及如何利用游标遍历查询结果。 #### 四、PL/SQL中的...
总的来说,PL/SQL是Oracle数据库开发的重要工具,通过学习和掌握PL/SQL,开发者可以更好地利用Oracle数据库的强大功能,构建高效、稳定的企业级应用。而`jbpm.sql`文件可能包含的流程管理相关代码,正是PL/SQL在企业...
对于初学者,可以从以下几个方面入手学习PL/SQL: 1. **基础语法**:理解PL/SQL的基本数据类型、变量声明、流程控制结构等。 2. **函数和过程**:掌握如何定义和调用自定义函数和过程。 3. **游标**:了解如何使用...
2. **变量和数据类型**:PL/SQL支持多种数据类型,包括数值型(NUMBER、BINARY_INTEGER、PLS_INTEGER)、字符型(VARCHAR2、CHAR)、日期型(DATE)、布尔型(BOOLEAN)以及复合数据类型如记录和数组。 3. **控制...
### PL/SQL编程基础知识 #### 一、PL/SQL简介 PL/SQL(Procedural Language for SQL)是一种过程化语言,它结合了SQL的数据操纵功能和过程化语言的...对于初学者来说,掌握这些基本概念是学习和应用PL/SQL的关键。
标题中提到的“PL/SQL开发文档1”,说明本文档是关于PL/SQL开发的入门级指导材料,面向希望学习使用PL/SQL进行数据库程序单元开发的用户。文档很可能是Oracle公司内部或其授权的培训机构用于教学目的的官方材料。 ...
本教程专注于为初学者提供一个易于上手的PL/SQL学习路径,通过丰富的测试案例,帮助读者快速掌握这一强大的数据库编程工具。 首先,让我们深入了解一下PL/SQL的基本概念。在第1章中,教程介绍了SQL与PL/SQL的关系。...