教学大纲:
- PLSQL编程:Hello World、程序结构、变量、流程控制、游标.
- 存储过程:概念、无参存储、有参存储(输入、输出).
- JAVA调用存储存储过程.
1. PLSQL编程
1.1. 概念和目的
什么是PL/SQL?
- PL/SQL(Procedure Language/SQL)
- PLSQL是Oracle对sql语言的过程化扩展 (类似于Basic)
- 指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力。
1.2. 程序结构
通过Plsql Developer工具的Test Window 创建 程序模版或者通过语句在SQL Window编写
提示:PLSQL语言的大小写是不区分的
PL/SQL可以分为三个部分:声明部分、可执行部分、异常处理部分。
-- Created on 2018/3/21 by ADMINISTRATOR
DECLARE
-- 声明变量、游标。
I INTEGER;
BEGIN
-- 执行语句
--[异常处理]
END;
其中 DECLARE部分用来声明变量或游标(结果集类型变量),如果程序中无变量声明可以省略掉
1.3. Hello World
BEGIN
--打印hello world
DBMS_OUTPUT.PUT_LINE('hello world');
END;
其中DBMS_OUTPUT 为oracle内置程序包,相当于Java中的System.out,而PUT_LINE()是调用的方法,相当于println()方法
在sqlplus中也可以编写运行PLSQL程序:
SQL> BEGIN
2
3 --打印hello world
4
5 DBMS_OUTPUT.PUT_LINE('hello world');
6
7 END;
8 /
PL/SQL 过程已成功完成。
执行结束后并未显示输出的结果,默认情况下,输出选项是关闭状态的 我们需要开启一下 set serveroutput on
SQLPLUS中执行PLSQL程序 需要在程序最后添加一个 / 标识程序的结束
1.4. 变量
PLSQL编程中常见的变量分两大类:
- 普通数据类型(char,varchar2, date, number, boolean, long)
- 特殊变量类型(引用型变量、记录型变量)
声明变量的方式为
变量名 变量类型(变量长度) 例如: v_name varchar2(20);
1.4.1. 普通变量
变量赋值的方式有两种:
- 直接赋值语句 := 比如: v_name := 'zhangsan'
- 语句赋值,使用select …into … 赋值:(语法 select 值 into 变量)
【示例】打印人员个人信息,包括: 姓名、薪水、地址
-- 打印人员个人信息,包括: 姓名、薪水、地址
DECLARE
-- 姓名
V_NAME VARCHAR2(20) := '张三'; -- 声明变量直接赋值
--薪水
V_SAL NUMBER;
--地址
V_ADDR VARCHAR2(200);
BEGIN
--在程序中直接赋值
V_SAL := 1580;
--语句赋值
SELECT '上海市传智播客' INTO V_ADDR FROM DUAL;
--打印变量
DBMS_OUTPUT.PUT_LINE('姓名:' || V_NAME || ',薪水:' || V_SAL || ',地址:' ||V_ADDR);
END;
1.4.2. 引用型变量
变量的类型和长度取决于表中字段的类型和长度
通过表名.列名%TYPE指定变量的类型和长度,例如: v_name emp.ename%TYPE;
【示例】查询emp表中7839