暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片
Oracle PLSQL开发实战宝典.pdf
73
37页
28次
2025-04-08
免费下载
Oracle PL/SQL 开发实战秘籍
第一章、简介
PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言。
支持 DML 操作及事务控制命令。特有的游标控制技术。
支持 SQL 函数和 SQL 运算符。
可移植性,可运行在任何操作系统平台上的 Oralce 数据库。
更佳的性能,PL/SQL 存储过程及函数是经过编译执行。
PL/SQL 包提供更好的安全性
简化复杂 SQL 代码编写
第二章、PL/SQL 的数据类型
一)标量类型
1)数值
最常用的是 number,它包括:decimal;float;integer;real
Oracle 联机文档:《Oracle Database PL/SQL Language Reference---E PL/SQL Predefined Data Types
2)字符
PL/SQL 的字符类型与 SQL 字符类型的容量比较:
3)布尔型
此类别只有一种类型,即 BOOLEAN 类型,
不能向数据库中插入 BOOLEAN 数据,不能将列值保存到 BOOLEAN 变量中,只能对 BOOLEAN 变量执行逻辑操作。
声明一个布尔类型的变量:
TRUEFALSENULL 可以赋值给 BOOLEAN 变量
②此变量可以接逻辑运算符 NOTANDOR
例:
VSAL1 number(10) :=50000
VSQL2 number(10) :=60000
VCOMMSAL BOOLEAN :=(VSAL1<VSQL2) 其实是把 TRUE 赋值给此变量
4)日期型
存储日期和时间数据,常用的两种日期时间类型:
DATE
TIMESTAMP
二)LOB 类型
用于存储大文本、图像、视频剪辑和声音剪辑等非结构化数据。
LOB 数据类型可存储最大 4GB 的数据。
1BLOB 将大型二进制对象存储在数据库中
2CLOB 将大型字符数据存储在数据库中
3NCLOB 存储大型 UNICODE 字符数据
4BFILE 将大型二进制对象存储在操作系统文件中
LOB 类型的数据库列仅存储定位符,该定位符指向大型对象的存储位置
DBMS_LOB 程序包用于操纵 LOB 数据
PL/SQL 中可以直接处理长度小于 32767 LOB 内容,这时 LOB 被自动转化为 VARCHAR2 类型。而如果长度超过了这个值,则无
法直接赋值或访问,需要通过 DBMS_LOB 包来进行处理。
三)复合类型
1)属性类型
%TYPE 引用变量和数据库列的数据类型一致
%ROWTYPE 提供表示表中一行的记录类型
使用属性类型的优点:
不需要知道被引用的表列的具体类型
如果被引用对象的数据类型发生改变,PL/SQL 变量的数据类型也随之改变,健壮性
例:
SQL>set serverout on
declare
v_ename scott.emp1.ename%type;
v_emp1 scott.emp1%rowtype;
begin
select ename into v_ename from scott.emp1 where empno=7788;
select * into v_emp1 from scott.emp1 where empno=7788;
dbms_output.put_line('姓名:'||v_ename);
dbms_output.put_line('工号:'||v_emp1.empno);
end;
/
...
2)记录类型
类似%rowtype,如果需要表中的某些字段,而不是全部字段作为一个变量类型,就需要自定义一个记录类型
语法示例:
例:
DECLARE
TYPE emp_record_type IS RECORD(name emp.ename%TYPE,salary emp.sal%TYPE,title emp.job%TYPE);
emp_record emp_record_type;
BEGIN
SELECT ename,sal,job INTO emp_record FROM emp WHERE empno=7788;
dbms_output.put_line('雇员名:'||emp_record.name);
END;
/
如例所示,emp_record_type PL/SQL 记录类型,并且该 PL/SQL 记录类型包含了三个成员name,salary,title;emp_record 是记
录变量;emp_record.name 则表示引用记录变量 emp_record 的成员。
PL/SQL 记录类似于高级语言中的结构,每个 PL/SQL 记录一般都包含多个成员。当使用 PL/SQL 记录时,首先需要在定义部分定
义记录类型和记录变量,然后在执行部分引用该记录变量。需要注意,当引用记录成员时,必须要加记录变量作为前缀(记录
变量.记录成员)。
3)表类型(索引表)
PL/SQL 表类型只有两列,一个索引列和表列(表列不一定代表一个字段),通过索引列中的索引值来操作 PL/SQL 表中对应的用
户自定义列。
语法示例:
...
例:
DECLARE
TYPE ename_table_type IS TABLE OF emp.ename%TYPE INDEX BY BINARY_INTEGER;
ename_table ename_table_type;
BEGIN
SELECT ename INTO ename_table(1) FROM emp WHERE empno=7788;
dbms_output.put_line('雇员名:'||ename_table(1));
END;
/
PL/SQL 表类似于高级语言中的数组
需要注意,PL/SQL 表与高级语言的数组有所区别,高级语言数组的下标不能为负, PL/SQL 表的下标可以为负值;高级语言数
组的元素个数有限制,而 PL/SQL 表的元素个数没有限制,并且其下标没有上下限。当使用 PL/SQL 表时,必须首先在定义部分
定义 PL/SQL 表类型和 PL/SQL 表变量,然后在执行部分中引用该 PL/SQL 表变量。
4)参照变量(ref 游标)
语法示例:
...
第三章、PL/SQL 结构
一)什么是 PL/SQL
PL/SQL 块是构成 PL/SQL 程序的基本单元
PL/SQL 块将逻辑上相关的声明和语句组合在一起
PL/SQL 分为三个部分:
1)声明部分, 2)可执行部分, 3)异常处理部分
语法:
of 37
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。