`
阅读更多

断断续续学过,这次系统地来读读。

(一)

PL/SQL是oracle在标准SQL语言上的过程性扩展,它不仅允许嵌入SQL语句,而且允许定义变量和常量,允许过程语言结构(条件语句和循环语句),允许使用异常处理oracle错误等。通过使用PL/SQL,可以在一个PL/SQL块中包含多条SQL语句和PL/SQL语句。PL/SQL具有以下优点:

1。提高应用系统的运行性能。

通过使用PL/SQL块包含多条SQL语句,从而减少了SQL语句的发送次数,降低了网络开销,提高了应用程序性能

2。提供模块化的程序设计功能。

将企业规则和商业逻辑集成到PL/SQL子程序当中,提供给客户端调用,简化了客户端应用程序的开发和维护工作,降低了耦合度

3。允许定义标识符,允许定义变量、常量、游标和异常等标识符

4。具有过程语言控制结构,允许使用条件分支语句和循环语句

5。具有良好的兼容性,在允许运行oracle的任何平台上执行,不仅在数据库服务端执行,也可以在oracle提供的工具中开发PL/SQL

6。处理运行错误,使用PL/SQL提供的EXCEPTION,开发人员可以集中处理各种oracle错误和PL/SQL错误,简化了错误处理。

(二)

PL/SQL块的概念:

Block是PL/SQL的基本单元,编写PL/SQL本质上就是编写PL/SQL块,块的嵌套层次没有限制。

1。块的结构:块由3部分组成

 

DECLARE  

  定义部分——定义常量,变量,游标,异常,复杂数据类型等

BEGIN

  执行部分

EXCEPTION

  异常处理部分

END /**/ /* 块结束标志 */

 

其中只有执行部分是必须的!

2。分类:

1)匿名块,匿名块是指没有名称的PL/SQL块,可以内嵌到应用程序中,如:

declare
    v_name 
VARCHAR2 ( 10 );

BEGIN
    
select  name  into  v_name  from  test  where  name =& no;
    dbms_output.put_line(
' 名字: ' || v_name);
    EXCEPTION
    
WHEN  NO_DATA_FOUND  THEN
    dbms_output.put_line(
' 找不到该名字 ' );
end ;


2)命名块:与匿名块相似,使用命名块主要是为了区分多级嵌套关系,如:

<< out >>

declare
    v_name 
VARCHAR2 ( 10 );

BEGIN

    
<< inner >>

    
begin

           
null ;

    
end ;

    
-- <<inner>>

    
    
select  name  into  v_name  from  test  where  name =& no;
    dbms_output.put_line(
' 名字: ' || v_name);
    EXCEPTION
    
WHEN  NO_DATA_FOUND  THEN
    dbms_output.put_line(
' 找不到该名字 ' );
end -- <<outer>>


3)子程序,又可以分成3种:过程、函数和包

A。过程用于执行特定操作,当建立过程时既可以指定输入参数,也可以指定输出参数,从而在应用环境和程序间传递数据,使用CREATE PROCEDURE语句,如:

  create   or   replace   PROCEDURE  update_test(id2  NUMBER ,money2  LONG )
 
is
    e_no_row EXCEPTION;
 
begin
    
update  test  set   money = money2  where  id = id2;
    
if  SQL % NOTFOUND  THEN
      RAISE e_no_row;
    
end   if ;
 EXCEPTION
    
WHEN   e_no_row  THEN
      raise_application_error(
- 20004 , ' 该test不存在 ' );
 
end  update_test;


B)函数,与过程主要不同是函数需要返回数据,在函数头和函数体都必须有RETURN语句,如:

 

create   or   replace   FUNCTION  get_long(name2  VARCHAR2 )
RETURN   LONG   IS
  avg_money 
NUMBER ;
begin
  
select   money   into  avg_money  from  test  where  name = name2;
  
RETURN  avg_money;
end ;  

 

C)包,类似JAVA包的概念,包含两部分,包规范和包体,包规范相当于C++中的头文件声明子程序,而包体包含这些子程序的具体实现。调用包中的子程序时,需要 ‘包名.子程序名’ 这样的形式调用

4。触发器是指隐含执行的存储过程,定义触发器需要指定触发事件和触发操作,常见触发事件如insert,update,delete等,使用CREATE TRIGGER命令建立

分享到:
评论

相关推荐

    pl/sql学习笔记

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

    PL/SQL学习笔记

    PL/SQL是Oracle公司开发的一种过程化SQL扩展,它是Oracle数据库的重要组成部分,用于在数据库服务器上编写存储过程、函数、触发器、包等可执行代码。PL/SQL可以处理复杂的数据操作和业务逻辑,支持编程结构如循环、...

    pl/sql数据库学习笔记

    PL/SQL数据库学习笔记 PL/SQL是一种高级的程序语言,主要用于Oracle数据库管理系统中。下面是PL/SQL数据库学习笔记的知识点总结。 一、基本原则 *瀑布模型:需求分析→设计(概要设计,详细设计:SQL语句,变量...

    PL/SQL学习教程,附笔记

    PL/SQL,全称是Procedural Language/Structured Query Language,是Oracle数据库提供的一种结合了SQL语言和过程式编程的编程环境。它扩展了SQL的功能,使得开发人员能够编写复杂的数据库应用程序,处理事务、实现...

    我的PL/SQL学习笔记(一)

    在这个“我的PL/SQL学习笔记(一)”中,我们将探讨PL/SQL的基础知识,包括其语法结构、变量声明、流程控制以及如何与Oracle数据库中的数据进行交互。 首先,PL/SQL的基本结构分为声明部分、执行部分和异常处理部分...

    PL/SQL学习笔记4

    ### PL/SQL学习笔记4 —— 集合与成员函数 #### 一、PL/SQL 表(索引表) 在PL/SQL中,**索引表**(也称为**PL/SQL表**)是一种非常有用的结构,它类似于数组但具有更多的灵活性。这种表是非持久化的,即它们不会...

    ORACLE PL/SQL从入门到精通

    ORACLE PL/SQL是从入门到精通的专业知识,涵盖了数据库开发与管理的多个方面,包括...这本书籍将为读者提供一个全面、系统的学习路径,帮助数据库管理员、开发人员深入理解并掌握ORACLE PL/SQL的强大功能和应用技巧。

    PL/SQl超级笔记

    总的来说,“PL/SQL超级笔记”应该涵盖了从基本语法到高级特性的全面教程,通过学习,新手可以逐步掌握如何使用PL/SQL进行数据库编程,从而更好地管理和操作Oracle数据库。配合"oracle_ppt"中的PPT材料,学习效果会...

    PL/SQL学习笔记6

    在PL/SQL编程中,游标是处理查询结果集的重要工具。它们允许程序逐行处理结果,而不是一次性加载所有数据,这对于大型数据集尤其有用,因为它可以节省内存并提高性能。下面将详细解释游标的基本概念、分类以及如何在...

    PL/SQL学习笔记7

    权限管理是PL/SQL中不可忽视的一部分。与表和视图的SELECT, INSERT, UPDATE, DELETE权限不同,过程具有EXECUTE权限。只有拥有EXECUTE权限的用户才能执行存储过程。例如,可以通过`GRANT`命令将执行权限授予特定用户...

    PL/SQL听课笔记

    ### PL/SQL听课笔记 #### 一、PL/SQL简介 **PL/SQL**(Procedural Language for SQL)是一种专门为Oracle数据库设计的过程化语言扩展。它是在标准SQL基础上增加了一系列高级编程特性,如变量、控制结构、函数、...

    PL/SQL学习笔记5

    在PL/SQL的学习中,分区是数据库管理大型数据集的一种高效方法,特别是在处理大数据量时。本篇笔记主要探讨了何时应该使用分区以及Oracle支持的分区类型。 首先,当面对超过2GB的大数据表时,分区是十分必要的。这...

    sql,PL/SQl学习笔记

    本文将深入探讨从"SQL,PL/SQL学习笔记"中提取的关键知识点,帮助编程人员更好地理解和运用这两种语言。 首先,我们关注SQL并行查询。通过`ALTER SESSION ENABLE PARALLEL DMl`,我们可以开启会话的并行DML操作,这...

    oracle/SQL和PL/SQL课堂笔记

    这篇课堂笔记主要涵盖了基础的SQL查询语法和部分PL/SQL概念。 首先,SQL查询的基础是从数据库中选择数据。`SELECT`语句用于指定需要选取的列,如`SELECT ename, sal, job FROM emp;`。字段顺序可以自由调整,例如`...

    pl/sqle学习笔记

    ### PL/SQL 学习笔记知识点详解 #### 1. PL/SQL 基本结构 - **DECLARE**: 在此部分声明变量、常量、数据类型及游标。 - **BEGIN**: 主程序体开始,可以包含任何合法的PL/SQL语句。 - **EXCEPTION**: 异常处理部分,...

Global site tag (gtag.js) - Google Analytics