PL_SQL 入门.ppt
文本预览下载声明
PL/SQL 入门 Oracle 编程入门经典 清华大学出版社 2002.12 21天学通PL/SQL 人民邮电出版社 2000.9 1 引言 PL/SQL 是什么 Oracle 公司开发的一种作为SQL扩展的过程性语言,它提供在数据库上执行过程性逻辑的途径 学习PL/SQL的五大理由 不管你是在使用Oracle产品( 如Developer/2000 ), 还是使用Oracle数据库引擎, 你都需要了解PL/SQL, 因为它们使用PL/SQL编写过程性代码 使用PL/SQL在服务器上执行处理 使用PL/SQL封装商务规则以及其它复杂的逻辑, 实现模块化和抽象 在数据库触发器上编写复杂的约束, 加强安全性, 数据库完整性 PL/SQL提供了平台独立性层次 SQL, SQL*Plus and PL/SQL SQL 结构化查询语言 当编写建立, 查询, 更新语句时使用的是SQL 它是声明性语言, 即只描述所要的结果, 而不是如何获得结果. SQL语句被送到数据库服务器上执行 PL/SQL 是对SQL扩展的过程性语言 过程性, 即代码规定了如何完成工作 用于创建程序块, 如过程, 函数, 程序包等. 在这些程序块中, 可以包含SQL语句 可以在服务器或客户端运行, 这取决于具体的任务更适合在服务器还是在客户端运行 SQL*Plus SQL*Plus是一个交互程序, 它让你输入并执行SQL语句 让你输入PL/SQL代码, 并将它们发送到服务器中执行 SQL*Plus是开发和创建PL/SQL存储过程和函数的前端工具 2 基于程序块的开发 PL/SQL代码使用了程序块(block), 利用模块化方式进行构建. 它们可以为更大的程序和应用构建程序块 每个程序块都是一组逻辑上的变量, 可执行的代码以及错误控制代码 声明块 声明是定义所有变量和常量的程序块组成部分 DECLARE是ORACLE的保留字, 它标识了新块的开始 L_TEXT 是我们定义的变量, 它的类型是VARCHAR2, 长度为100 可执行部分 BEGIN表示可执行部分的开始 第4行和第5行为变量L_TEXT赋予了值Hello, World!, 并且使用DBMS_OUTPUT PL/SQL程序包的PUT_LINE过程向标准输出显示变量的内容 最后部分是异常块 嵌套块 除了标准的PL/SQL程序块以外, 用户还可以建立包含附加的程序块, 或者子程序块的程序块. 程序块可以在可执行部分和异常处理部分包含另外的程序块 3 声明 变量和常量 使用%TYPE和%ROWTYPE 当用户声明单独的变量时, 可以使用%TYPE 当用户声明表示表, 视图或游标的完整行的记录变量时, 可以使用%ROWTYPE 使用%TYPE和%ROWTYPE有两个原因 用户在声明的时候不知道数据类型 如果用户正在引用的变量的数据类型发生改变, 用户的%TYPE和%ROWTYPE变量也会在运行时改变 4 控制语句 条件 IF…THEN…ELSE CASE 循环 5 过程, 函数和程序包 使用存储过程, 函数和程序包代替匿名PL/SQL程序块的优势 可扩展性 让开发者增加功能, 扩展数据库的核心功能 模块化 用户在应用中定义单独的处理模块, 它们可以组织成更复杂的应用. 小型的, 分离的过程要比复杂的过程更容易修改, 并更加有效的共享 可重用性 保存在数据库中的过程任何应用都可以执行它们 可维护性 小的模块更容易维护 抽象和数据隐藏 当用户调用不是由用户编写的过程时, 他所需知道就是过程能够完成的工作. 而代码和处理过程的实现对调用者都是隐藏的 安全性 与安全机制使用的视图具有同样的功效 5.1 过程(Procedure) 存储过程(stored procedure)就是命名PL/SQL程序块, 它可以被赋予参数, 存储在数据库中, 由一个应用调用(激活). 5.1.1 语法 [CREATE [OR REPLACE]] PROCEDURE procedure_name [(parameter[, parameter]…)] {IS | AS} [local declarations] BEGIN executable statements [EXCEPTION Exception handlers] END [procedure_name]; 5.1.2 参数 IN 参数 要通过调用者传入 只能由过程读取. 即它们只是读取值, 不能由过程改变. OUT 参数 能够由过程写入 这些参数适用于过程需要向调用者返回多条信息的时候. IN OUT 参数 同时具有IN参数和OUT参数的特性 能够用于传入数值, 并且从存储过程返回值. 它们适用于用户需要向过程可以由过程本身修改的INPUT变量的情况. 过程能够读
显示全部