没有合适的资源?快使用搜索试试~ 我知道了~
SQL与编程语言之间的不同在于,SQL没有变量,SQL没有流程控制(分支,循环)。而PL/SQL是结构化的和过程化的结合体,而且最为重要的是,在用户执行多条SQL语句时,每条SQL语句都是逐一的发送给数据库,而PL/SQL可以一次性将多条SQL语句一起发送给数据库,减少网络流量
资源推荐
资源详情
资源评论
北京 MLDN 软件实训中心 联系电话:010-51283346
第 16 章 PL/SQL 编程基础
范例:编写不做任何工作的 PL/SQL 块
BEGIN
NULL ;
END ;
/
范例:编写一个简单的 PL/SQL 程序
DECLARE
v_num NUMBER ; -- 定义一个变量 v_num
BEGIN
v_num := 30 ; -- 设置 v_num 的内容
DBMS_OUTPUT.put_line('V_NUM 变量的内容是:' || v_num) ;
END ;
/
范例:编写 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 ;
/
范例:定义变量不设置默认值
DECLARE
v_result VARCHAR2(30) ; -- 此处没有赋值
BEGIN
DBMS_OUTPUT.put_line('v_result 的内容〖' || v_result || '〗') ;
END ;
/
范例:定义变量
DECLARE
第(1)页 共(21)页 E-Mail:mldnqa@163.com
北京 MLDN 软件实训中心 联系电话:010-51283346
v_resultA NUMBER := 100 ; -- 定义一个变量同时赋值
v_resultB NUMBER ; -- 定义一个变量没有设置内容
BEGIN
v_resultb := 30 ; -- 没有区分大小写
DBMS_OUTPUT.put_line('计算的结果是:' || (v_resultA + v_resultB) ) ;
END ;
/
范例:定义非空变量
DECLARE
v_resultA NUMBER NOT NULL := 100 ; -- 定义一个非空变量 v_resultA,同时赋值
BEGIN
DBMS_OUTPUT.put_line('v_resultA 变量内容:' || (v_resultA) ) ;
END ;
/
范例:定义常量
DECLARE
v_resultA CONSTANT NUMBER NOT NULL := 100 ; -- 定义一个常量同时赋值
BEGIN
DBMS_OUTPUT.put_line('v_resultA 常量内容:' || (v_resultA) ) ;
END ;
/
范例:使用“%TYPE”定义变量
DECLARE
v_eno emp.empno%TYPE ; -- 与 empno 类型相同
v_ename emp.ename%TYPE ; -- 与 ename 类型相同
BEGIN
DBMS_OUTPUT.put_line('请输入雇员编号:') ;
v_eno := &empno ; -- 由键盘输入雇员编号
SELECT ename INTO v_ename FROM emp WHERE empno= v_eno ;
DBMS_OUTPUT.put_line('编号为:' || v_eno || '雇员的名字为:'|| v_ename) ;
END ;
/
范例:使用 ROWTYPE 装载一行记录
DECLARE
v_deptRowdept%ROWTYPE ; -- 装载一行 dept 记录
BEGIN
SELECT * INTO v_deptRow FROM dept WHERE deptno=10 ;
DBMS_OUTPUT.put_line(' 部 门 编 号 : '|| v_deptRow.deptno || ' , 名 称 : ' || v_deptRow.dname || ' , 位 置 : ' ||
v_deptRow.loc) ;
第(2)页 共(21)页 E-Mail:mldnqa@163.com
北京 MLDN 软件实训中心 联系电话:010-51283346
END ;
/
范例:通过自定义类型接收一行记录
DECLARE
TYPE dept_type IS RECORD (
dno dept.deptno%TYPE ,
dna dept.dname%TYPE ,
dlo dept.loc%TYPE) ; -- 定义一个新的类型
v_deptRowdept_type ; -- 装载一行 dept 记录
BEGIN
SELECT * INTO v_deptRow FROM dept WHERE deptno=10 ;
DBMS_OUTPUT.put_line('部门编号:'|| v_deptRow.dno || ',名称:' || v_deptRow.dna || ',位置:' || v_deptRow.dlo) ;
END ;
/
范例:使用赋值运算符
DECLARE
v_info VARCHAR2(50) := '北京魔乐科技软件学院' ;
v_url VARCHAR2(50) ;
BEGIN
v_url := 'www.mldnjava.cn' ;
DBMS_OUTPUT.put_line(v_info) ;
DBMS_OUTPUT.put_line(v_url) ;
END ;
/
范例:字符串连接
DECLARE
v_info VARCHAR2(50) := '北京魔乐科技软件学院' ;
v_url VARCHAR2(50) ;
BEGIN
v_url := 'www.mldnjava.cn' ;
DBMS_OUTPUT.put_line(v_info || ',网址:' || v_url) ;
END ;
/
范例:使用关系运算符
DECLARE
v_url VARCHAR2(50) := 'www.mldnjava.cn' ;
v_num1 NUMBER := 80 ;
v_num2 NUMBER := 30 ;
BEGIN
第(3)页 共(21)页 E-Mail:mldnqa@163.com
北京 MLDN 软件实训中心 联系电话:010-51283346
IF v_num1 > v_num2 THEN
DBMS_OUTPUT.put_line('第 1 个数字比第 2 个数字大。') ;
END IF ;
IF v_url LIKE '%mldn%' THEN
DBMS_OUTPUT.put_line('网址之中包含 mldn 单词。') ;
END IF ;
END ;
/
范例:观察逻辑运算结果
DECLARE
v_flag1 BOOLEAN := TRUE ;
v_flag2 BOOLEAN := FALSE ;
v_flag3 BOOLEAN ;
BEGIN
IF v_flag1 AND ( NOT v_flag2 ) THEN
DBMS_OUTPUT.put_line('v_flag1 AND ( NOT v_flag2 ) = TRUE') ;
END IF ;
IF v_flag1 OR v_flag3 THEN
DBMS_OUTPUT.put_line('v_flag1 OR v_flag3 = TRUE') ;
END IF ;
IF v_flag1 AND v_flag3 IS NULL THEN
DBMS_OUTPUT.put_line('v_flag1 AND v_flag3 的结果为 NULL。') ;
END IF ;
END ;
/
范例:定义 NUMBER 变量
DECLARE
v_x NUMBER(3) ; -- 最多只能为 3 位数字
v_y NUMBER(5,2) ; -- 3 位整数,2 位小数
BEGIN
v_x := -500 ;
v_y := 999.88 ;
DBMS_OUTPUT.put_line('v_x = ' || v_x) ;
DBMS_OUTPUT.put_line('v_y = ' || v_y) ;
DBMS_OUTPUT.put_line('加法运算:' || (v_x + v_y)) ; -- 整数 + 浮点数 = 浮点数
END ;
/
范例:验证 PLS_INTEGER 操作
DECLARE
v_pls1 PLS_INTEGER := 100 ;
第(4)页 共(21)页 E-Mail:mldnqa@163.com
剩余20页未读,继续阅读
资源评论
doraoeli
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功