`

PL/SQL学习二

SQL 
阅读更多

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最新中文手册"显然是一份详细解释PL/SQL 7.0版本的指南,对于学习和精通Oracle数据库编程至关重要。以下是手册可能涵盖的一些核心知识点: 1. **PL/SQL基础**:手册可能会从基础开始,介绍PL/SQL的基本...

    oracle10g_pl/sql

    通过深入学习Oracle 10g PL/SQL,不仅可以掌握数据库编程的基本技能,还能了解如何利用这些技能来设计和实现复杂的业务逻辑,优化数据库性能,以及更好地维护和管理Oracle数据库系统。本教程涵盖了所有这些关键知识...

    Oracle PL/SQL学习官方教材

    以下是对"Oracle PL/SQL学习官方教材"中可能包含的主要知识点的详细解释: 1. **基础概念**:首先,教材会介绍PL/SQL的基本概念,包括块(Block)、变量(Variable)、常量(Constant)、数据类型(Data Types)和...

    一个对数据库的操作工具PL/SQLpl/sqL工具

    2. **数据处理**:通过PL/SQL,用户可以直接对数据库表进行增删改查操作,使用SELECT、INSERT、UPDATE、DELETE等SQL语句。 3. **游标**:PL/SQL支持游标,允许用户逐行处理查询结果,这对于处理大量数据时非常有用...

    pl/sql 学习资料

    在这个“PL/SQL学习资料”压缩包中,包含了十一个PDF文件,覆盖了从基础到进阶的广泛主题。下面我们将详细探讨这些知识点。 1. **PL/SQL基础知识**: - PL/SQL结构:了解块的概念,包括声明部分、执行部分和异常...

    PL/SQL学习笔记

    PL/SQL是Oracle公司开发的一种过程化SQL扩展,它是Oracle数据库的重要组成部分,用于在数据库服务器上编写存储过程、函数、触发器、包等可执行...通过学习和掌握PL/SQL,开发者可以构建高效、复杂的数据库应用程序。

    Oracle PL/SQL实战(待续)

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据处理能力与PL的程序设计...通过实践和学习"Oracle PL/SQL实战(待续)"的相关内容,我们可以提升在Oracle环境中解决问题的能力,更好地管理和优化数据库系统。

    PL/SQL学习资料

    这个“PL/SQL学习资料”压缩包包含了对这一编程语言深入理解和应用的关键知识点。 PL/SQL由三部分组成:声明部分、执行部分和异常处理部分。在声明部分,我们可以定义变量、常量、游标、记录类型等;执行部分用于...

    pl/sql学习笔记

    以下是对PL/SQL的学习笔记的详细解析: 1. **什么是PL/SQL语言** PL/SQL是Oracle数据库为数据库管理员和开发人员设计的一种编程语言。它扩展了SQL的功能,允许编写包含控制结构、变量、过程和函数的程序段,这些...

    PL/SQL学习教程,附笔记

    在学习PL/SQL的过程中,理解这些基本概念和结构是至关重要的。通过实践编写存储过程、函数和触发器,你可以逐渐掌握PL/SQL的强大功能,并利用它来解决实际的数据库编程问题。对于初学者来说,循序渐进、结合实例学习...

    oracle 中 pl/sql 只是学习方法

    2. **流程控制**:PL/SQL支持条件语句(IF-THEN-ELSE、CASE)和循环语句(FOR、WHILE、LOOP)。这使得我们能够在处理数据时根据不同的条件执行不同的逻辑。 3. **集合和游标**:集合是PL/SQL中处理多行数据的有效...

    oracle pl/sql从入门到精通 配套源代码

    2. **存储过程和函数**:这些是PL/SQL的核心组成部分,它们封装了一系列操作,可以被多次调用,提高代码复用性。书中可能包含各种示例,如自定义计算函数、处理业务逻辑的存储过程等。 3. **触发器**:当数据库中的...

    PL/SQL学习课件

    第二章“访问Oracle”将探讨如何通过PL/SQL连接到Oracle数据库,使用连接字符串、用户认证和游标来操作数据。这部分内容对于理解如何在PL/SQL环境中执行数据库查询至关重要。 第三章“控制结构”深入讲解了PL/SQL中...

    Oracle PL/SQL程序设计(第5版)(上下册)

    - **集合与记录**:学习如何使用PL/SQL中的集合和记录类型,这些结构可以帮助更高效地处理数据集。 - **游标**:介绍游标的使用方法,包括隐式游标和显式游标,以及如何利用游标遍历查询结果。 #### 四、PL/SQL中的...

    PL/SQL 基本知识

    总的来说,PL/SQL是Oracle数据库开发的重要工具,通过学习和掌握PL/SQL,开发者可以更好地利用Oracle数据库的强大功能,构建高效、稳定的企业级应用。而`jbpm.sql`文件可能包含的流程管理相关代码,正是PL/SQL在企业...

    PL/SQL下载

    对于初学者,可以从以下几个方面入手学习PL/SQL: 1. **基础语法**:理解PL/SQL的基本数据类型、变量声明、流程控制结构等。 2. **函数和过程**:掌握如何定义和调用自定义函数和过程。 3. **游标**:了解如何使用...

    Oracle PL/SQL实例编程(PL/SQL经典书籍)

    2. **变量和数据类型**:PL/SQL支持多种数据类型,包括数值型(NUMBER、BINARY_INTEGER、PLS_INTEGER)、字符型(VARCHAR2、CHAR)、日期型(DATE)、布尔型(BOOLEAN)以及复合数据类型如记录和数组。 3. **控制...

    PL/SQL编程基础知识

    ### PL/SQL编程基础知识 #### 一、PL/SQL简介 PL/SQL(Procedural Language for SQL)是一种过程化语言,它结合了SQL的数据操纵功能和过程化语言的...对于初学者来说,掌握这些基本概念是学习和应用PL/SQL的关键。

    PL/SQL开发文档1

    标题中提到的“PL/SQL开发文档1”,说明本文档是关于PL/SQL开发的入门级指导材料,面向希望学习使用PL/SQL进行数据库程序单元开发的用户。文档很可能是Oracle公司内部或其授权的培训机构用于教学目的的官方材料。 ...

    最容易上手的PL/SQL学习教程-有经过测试的丰富案例

    本教程专注于为初学者提供一个易于上手的PL/SQL学习路径,通过丰富的测试案例,帮助读者快速掌握这一强大的数据库编程工具。 首先,让我们深入了解一下PL/SQL的基本概念。在第1章中,教程介绍了SQL与PL/SQL的关系。...

Global site tag (gtag.js) - Google Analytics