PL/SQL(procedure language/SQL)语言是Oracle对SQL语言的过程化扩充,是一个完整的编程语言.PL/SQL实现了过程化语句(如分支.循环等)与SQL语句的无缝连接,将过程化语言的数据处理能力与SQL语言的访问数据库的能力有机地结合在一起.PL/SQL语言在Oracle系统中是核心的编程语言,它应用于很多方面,如存储过程.触发器.包.函数和Web应用等.PL/SQL语言编写的不是客户端程序,而是服务器端的程序 PL/SQL字符集 合法字符 所有大小写字母 数字0-9…
1.PL/SQL是一种高级数据库程序设计语言,专门用于在各种环境下对Oracle数据库进行访问.该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理. 2.PL/SQL是对SQL语言存储过程语言的扩展,是Oracle系统的核心语言. 3.PL/SQL程序由三个块组成:声明部分.执行部分.异常处理部分. DECLARE /*声明部分*/ BEGIN /*执行部分*/ EXCEPTION /*异常处理部分*/ END; 4.基本类型…
什么是异常?在PL/SQL中的一个标识.在程序运行期间被触发的错误.异常是怎样被触发的?产生一个Oracle错误.用户显示触发.怎样处理异常?用异常处理句柄捕获异常.传播异常到调用环境. 捕获异常 EXCEPTION  WHEN exception1 [OR exception2 . . .] THEN    statement1;    statement2;    . . .  [WHEN exception3 [OR exception4 . . .] THEN    statement1…
匿名PL/SQL块回顾 DECLARE (可选)    定义在PL/SQL块中要使用的对象BEGIN (必须)    执行语句EXCEPTION (可选)    错误处理语句END; (必须)匿名块(以DECLARE或BEGIN开始)每次使用时都要进行编译. 匿名块不存储在数据库中,并且它不能从其它的PL/SQL块中进行调用. 过程.函数.包和触发器:都是带名块.(请注重同匿名块的比较) 过程.函数.包和触发器:可以存储在数据库中,并且可以在需要的时候运行. 过程.函数.包和触发器:可以从其它P…
匿名PL/SQL块回顾 DECLARE (可选)     定义在PL/SQL块中要使用的对象 BEGIN (必须)     执行语句 EXCEPTION (可选)     错误处理语句 END; (必须) 匿名块(以DECLARE或BEGIN开始)每次使用时都要进行编译. 匿名块不存储在数据库中,并且它不能从其它的PL/SQL块中进行调用. 过程.函数.包和触发器:都是带名块.(请注重同匿名块的比较) 过程.函数.包和触发器:可以存储在数据库中,并且可以在需要的时候运行. 过程.函数.包和触发器…
游标 Cursors--Conception 每一条被Oracle服务器执行的SQL语句都有一个独立的游标与之相关联:隐式游标 Implicit cursors: 用于所有的DML和PL/SQL的SELECT语句.显示游标 Explicit cursors: 被程序显示声明和命名.所定义的SQL语句必须只包含select语句,并且不能用insert.update或delete关键字.当select语句可能返回零或多于一行时,必须用显式游标.当Select语句预计只返回一行时,隐式游标将做得更好.…
创建触发器 触发器类似于过程和函数,都拥有声明.执行和异常处理过程的带名PL/SQL块.与包类似,触发器必须存储在数据库中.前面已经讲过,过程是显式地通过过程调用执行的,同时过程调用可以传递参数.与之相反,触发器是在事件发生时隐式地运行的,并且触发器不能接受参数.运行触发器的方式叫做激发(firing)触发器.触发事件可以是对数据库表的DML(INSERT.UPDATE.DELETE)操作或某种视图的操作.Oracle8i把触发器功能扩展到了可以激发系统事件,如数据库的启动和关闭,以及某种DDL…
在PL/SQL程序中,允许使用的SQL语句只有DML和事务控制语句,使用DDL语句是非法的.使用SELECT语句从数据库中选取数据时,只能返回一行数据.使用COMMIT,  ROLLBACK, 和SAVEPOINT语句控制事务.使用隐式游标(implicit cursors)测定DML语句的执行结果.DDL语句只能通过内置的DBMS_SQL包来使用. 在PL/SQL中的SELECT语句 SELECT select_listINTO     {variable_name[, variable_na…
IF逻辑结构:IF-THEN-END IFIF-THEN-ELSE-END IFIF-THEN-ELSIF-END IF 语法 IF condition THEN  statements;[ELSIF condition THEN   statements;][ELSE   statements;]END IF; 实例 IF v_ename = 'OSBORNE' THEN   v_mgr := 22;END IF; if-then . . . v_job := 'SALESMAN';     …
PL/SQL函数 examples:“ 构造一个邮件地址 v_mailing_address := v_name||CHR(10)||                                   v_address||CHR(10)||v_state||                                  CHR(10)||v_zip;转换员工姓名为小写 v_ename    := LOWER(v_ename); 转换函数:TO_CHAR.TO_DATE.TO_NUMBER…