知识点的梳理:
- 默认情况下,DBMS_OUTPUT.put_line();无法输出语句,因为Oralce关闭了输出显示。
- 用户可输入"set serveroutput on"来开启显示
- PL/SQL语法中DECLARE用于声明变量,BEGIN用于编写语句,EXCEPTION用于异常处理,最后必须通过END标记完结;
- 使用"表.字段%TYPE"可以按照指定表中的列类型声明变量,使用"表%ROWTYPE",则是按照表的结构声明变量;
- PL/SQL语法中的数据类型分为标量类型,复合类型,引用类型,LOB类型;
-
PL/SQL 提供了很多数据类型,建议以NUMBER ,VARCHAR2 ,DATE ,CLOB 数据类型为主;
- 其他的子数据类型会在系统内部提供的子程序中出现;
- PL/SQL提供了判断,循环语句的支持;
- 可以在一个PL/SQL程序块的内部,定义若干个内部程序块;
- 当PL/SQL中出现异常后,可以通过EXCEPTION捕获指定的异常,用户也可以利用RAISE_APPLICATION_ERROR手工抛出一个异常:
-
简介
- PL/SQL(Procedure Language/SQL)过程化语言
-
PL/SQL是Oracle对sql语言的过程化扩展 , 使sql支持判断,循环等 ;这样PL/SQL和C , java都是同一类东西
- 普通的SQL语句是逐一发送给数据库的,而PL/SQL可以一次性将多条SQL语句一起发送给数据库,减少网络流量;
-
图示:
-
PL/SQL支持两种类型的程序,一种是匿名块程序,另一种是命名块程序。它们都有声明,执行,异常处理3分布组成。
- 匿名块支持批脚本执行;
- 命名块提供存储编程单元;
-
语法与示例
- PL/SQL语法结构:
| ||
PL/SQL可以不做任何事情,但在PL/SQL编程中要求,执行块至少要有一条语句,即使这条语句只编写了一个NULL。
|
- 示例1:第一个PL/SQL程序
DECLARE v_num NUMBER ; -- 定义一个变量v_num BEGIN v_num := 30 ; -- 设置v_num的内容 DBMS_OUTPUT.put_line('V_NUM变量的内容是:' || v_num) ; END ; / | 程序的输出结果是:"V_NUM变量的内容是30" |
- 示例2:编写PL/SQL块,输入一个雇员编号,而后取得指定的雇员姓名
DECLARE v_eno NUMBER ; v_ename VARCHAR2(10) ; BEGIN v_eno := &empno ; -- 由键盘输入雇员编号 SELECT ename INTO v_ename FROM emp WHERE empno=v_eno ; DBMS_OUTPUT.put_line('编号为:' || v_eno || '雇员的名字为:'|| v_ename) ; END ; / | 效果:在对话框输入"7369"
|