五章使用PLSQLppt课件.ppt

上传人:京东小超市 文档编号:6078978 上传时间:2020-09-06 格式:PPT 页数:30 大小:939.50KB
返回 下载 相关 举报
五章使用PLSQLppt课件.ppt_第1页
第1页 / 共30页
五章使用PLSQLppt课件.ppt_第2页
第2页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《五章使用PLSQLppt课件.ppt》由会员分享,可在线阅读,更多相关《五章使用PLSQLppt课件.ppt(30页珍藏版)》请在三一文库上搜索。

1、第五章,使用 PL/SQL,瞬卸阜玉蘑履霍新阅婿异液绣档与池卡吱期淬抹酪臻悄健弓梳倔荚劳脆咒五章使用PLSQLppt课件五章使用PLSQLppt课件,2,回顾,同义词是现有数据库对象的别名 序列用于生成唯一、连续的序号 视图是基于一个或多个表的虚拟表 索引是与表相关的一个可选结构,用于提高 SQL 语句执行的性能 索引类型有标准索引、唯一索引、反向键索引、位图索引和基于函数的索引 索引组织表基于主键访问数据,花恐才伏存铂旧羊瞪哮瓢叙溯淆填蕾嗜挎间吸瘁天则拖潘茬惩爽辉尤炔够五章使用PLSQLppt课件五章使用PLSQLppt课件,3,目标,理解 PL/SQL 功能和特点 了解数据类型及其用法(重

2、点) 理解逻辑比较 - 理解控制结构(重点) 掌握错误处理(重点),渺憨猿忽睬认讽苫刺日聚农丸碎柬腿塌扰扛重滁嫁耗丫涨征牌扼罕警南欠五章使用PLSQLppt课件五章使用PLSQLppt课件,4,专业英语,LOB大对象(Large OBject ),藉伸敲均冈枯瓢淮扫使垢窝致盘厂榔吵多赡鸡墟解骄骚继萄宇歇肢讯氧耶五章使用PLSQLppt课件五章使用PLSQLppt课件,5,PL/SQL 简介,PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言 PL/SQL 是对 SQL 的扩展 支持多种数据类型,如大对象和集合类型,可使用条件和循环等控

3、制结构 可用于创建存储过程、触发器和程序包,给SQL语句的执行添加程序逻辑 与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性、灵活性和安全性,继馒暴徘遂阳痢皂曰潞芜某秃麻牙决辽锰漓率赞不熟屎骚目忘呸展搁砷屏五章使用PLSQLppt课件五章使用PLSQLppt课件,6,PL/SQL 的优点 2-1,支持 SQL,在 PL/SQL 中可以使用: 数据操纵命令 事务控制命令 游标控制 SQL 函数和 SQL 运算符 支持面向对象编程 (OOP) 可移植性,可运行在任何操作系统和平台上的Oralce 数据库 更佳的性能,PL/SQL 经过编译执行,用户将整个语句块发送给 Oracl

4、e,阵状枣暇韩侩苛剑剁殷弃浙泰巍奋丘瘁钎下沦各以蛔命钙矫楔饵只念诅窜五章使用PLSQLppt课件五章使用PLSQLppt课件,7,PL/SQL 的优点 2-2,与 SQL 紧密集成,简化数据处理。 支持所有 SQL 数据类型 支持 NULL 值 支持 %TYPE 和 %ROWTYPE 属性类型,安全性,可以通过存储过程限制用户对数据的访问,流立乃阔校惊嵌砒遣甸绚诽羽寞青挟冲焰巨伪逝你壬蹭袒肥褥钠妄脆崭漠五章使用PLSQLppt课件五章使用PLSQLppt课件,8,PL/SQL 的体系结构,PL/SQL 引擎驻留在 Oracle 服务器中 该引擎接受 PL/SQL 块并对其进行编译执行,将PL/

5、SQL 块发送给 Oracle 服务器,用户,执行过程语句,引擎将 SQL 语句发送给SQL 语句执行器,执行 SQL 语句,将结果发送给用户,挠抒图闺还兽衬拉入须级堡袍承逸热隙辫蚤滚队吃佬幼颐覆拙浇密冬锋辙五章使用PLSQLppt课件五章使用PLSQLppt课件,9,PL/SQL 块简介,PL/SQL 块是构成 PL/SQL 程序的基本单元 将逻辑上相关的声明和语句组合在一起 PL/SQL 分为三个部分,声明部分、可执行部分和异常处理部分 DECLARE declarations BEGIN executable statements EXCEPTION handlers END;,DECL

6、ARE qty_on_hand NUMBER(5); BEGIN SELECT quantity INTO qty_on_hand FROM Products WHERE product = 芭比娃娃 FOR UPDATE OF quantity; IF qty_on_hand 0 THEN UPDATE Products SET quantity = quantity + 1 WHERE product = 芭比娃娃; INSERT INTO purchase_record VALUES (已购买芭比娃娃, SYSDATE); END IF; COMMIT; EXCEPTION /* 异常处

7、理语句 */ WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(出错:| SQLERRM); END;,声明部分定义变量、游标和自定义异常,包含 SQL 和 PL/SQL 语句的可执行部分,指定出现错误时需要执行的操作,筛因睫桂契砷迪趣脱晌辽撂渝汉泉倘巧园散沟得扫苏二碍苦此复衅棕葵固五章使用PLSQLppt课件五章使用PLSQLppt课件,10,变量和常量 1-2,PL/SQL 块中可以使用变量和常量 在声明部分声明,使用前必须先声明 声明时必须指定数据类型,每行声明一个标识符 在可执行部分的 SQL 语句和过程语句中使用 声明变量和常量的语法:,identifier

8、 CONSTANT datatype NOT NULL := | DEFAULT expr;,给变量赋值有两种方法: 使用赋值语句 := 使用 SELECT INTO 语句,欧踏泼卸驱率性厢捂衣庶役默端焚悍式蛹燕逊广迭逞乞积郁陡言开纳该饼五章使用PLSQLppt课件五章使用PLSQLppt课件,11,变量和常量 2-2,DECLARE icode VARCHAR2(6); p_catg VARCHAR2(20); p_rate NUMBER; c_rate CONSTANT NUMBER := 0.10; BEGIN . icode := i205; SELECT p_category, it

9、emrate * c_rate INTO p_catg, p_rate FROM itemfile WHERE itemcode = icode; . END;,付膀宽迄咙词磐姨响辆寐幕杆茁农谷衣媚啦仅谭稗抬液崔迎谐沈体树胁懒五章使用PLSQLppt课件五章使用PLSQLppt课件,12,数据类型,PL/SQL 支持的内置数据类型,数据类型,LOB类型,标量类型,属性类型,%ROWTYPE,数字,字符,布尔型,日期时间,BFILE,BLOB,CLOB,NCLOB,%TYPE,提供某个变量或数据库表列的数据类型,提供表示表中一行的记录类型,存储非结构化数据块,返朵翘垮黄涧新卫呛禾胎籍搞礁辟驯窗游

10、可勒娃裤疮克奢爆涕苇裕聂串酸五章使用PLSQLppt课件五章使用PLSQLppt课件,13,数字数据类型,指定数值的存储格式,数字数据类型,NUMBER,BINARY_INTEGER,PLS_INTEGER,NATURAL,NATURALLN,POSITIVE,POSITIVEN,DECIMAL,FLOAT,INTEGER,REAL,SIGNTYPE,存储有符号整数,所需存储空间少于NUMBER类型值,存储整数、实数和浮点数,存储有符号整数,可使算术计算快速而有效,痰涡饰穴榆蝶洋泞苹洞膛踩吕枣肚膀石候庭胳淀籽大绦菩银割嚎盗笨仟晕五章使用PLSQLppt课件五章使用PLSQLppt课件,14,字

11、符数据类型,字符数据类型包括: CHAR VARCHAR2 LONG RAW LONG RAW PL/SQL 的数据类型与 SQL数据类型的比较,歪撇姿必乱裙津钱儒候帆揉誊蒜湃骋朽寓倪惠燃驶桥娘敌缉赵帝蝉昧辛播五章使用PLSQLppt课件五章使用PLSQLppt课件,15,日期时间和布尔数据类型,日期时间类型 存储日期和时间数据 常用的两种日期时间类型 DATE TIMESTAMP 布尔数据类型 此类别只有一种类型,即BOOLEAN类型 用于存储逻辑值(TRUE、FALSE和NULL) 不能向数据库中插入BOOLEAN数据 不能将列值保存到BOOLEAN变量中 只能对BOOLEAN变量执行逻辑

12、操作,俩吝照渗鳞忽量晨答疲场腔沤遮幅押管研竹幼遗式环锋携果希丈茂递龋拖五章使用PLSQLppt课件五章使用PLSQLppt课件,16,LOB 数据类型 2-1,用于存储大文本、图像、视频剪辑和声音剪辑等非结构化数据。 LOB 数据类型可存储最大 4GB的数据。 LOB 类型包括: BLOB 将大型二进制对象存储在数据库中 CLOB 将大型字符数据存储在数据库中 NCLOB 存储大型UNICODE字符数据 BFILE 将大型二进制对象存储在操作系统文件中,裙烩冗貉陈馋坑甲善哆譬署御团棒袱有振洽增沽荫温遮蓖瞬崭昭人羞阵牟五章使用PLSQLppt课件五章使用PLSQLppt课件,17,LOB 数据类

13、型 2-2,LOB 类型的数据库列仅存储定位符,该定位符指向大型对象的存储位置 DBMS_LOB程序包用于操纵 LOB 数据,SET SERVEROUTPUT ON DECLARE clob_var CLOB; amount INTEGER; offset INTEGER; output_var VARCHAR2(100); BEGIN SELECT chapter_text INTO clob_var FROM my_book_text WHERE chapter_id=5; amount := 24; - 要读取的字符数 offset := 1; - 起始位置 DBMS_LOB.READ(

14、clob_var,amount,offset,output_var); DBMS_OUTPUT.PUT_LINE(output_var); END; /,从表中选择 CLOB 定位符 到 clob_var变量中,从CLOB数据中读取24个字符存储到 output_var 变量中,显示读到的信息,淆熟米痉整垛炯缀创悉梭么巳半凸诛拾木婆悍稀邦腋渤娥那光霄奶揣浦尼五章使用PLSQLppt课件五章使用PLSQLppt课件,18,属性类型,用于引用数据库列的数据类型,以及表示表中一行的记录类型 属性类型有两种: %TYPE - 引用变量和数据库列的数据类型 %ROWTYPE - 提供表示表中一行的记录类

15、型 使用属性类型的优点: 不需要知道被引用的表列的具体类型 如果被引用对象的数据类型发生改变,PL/SQL 变量的数据类型也随之改变,icode itemfile.itemcode%TYPE; emp_rec scott.emp%ROWTYPE;,捉背芜体赵衡肄缴巾润驼曲沮歇翰舜每言夫佬措箩联瘪粹嚏周质泰寻役妈五章使用PLSQLppt课件五章使用PLSQLppt课件,19,布尔表达式的结果为TRUE、FALSE或NULL,通常由逻辑运算符AND、OR和NOT连接 布尔表达式有三种类型: 数字布尔型 字符布尔型 日期布尔型,逻辑比较,逻辑比较用于比较变量和常量的值,这些表达式称为布尔表达式 布尔

16、表达式由关系运算符与变量或常量组成,票蛰禄债意苔守宝减扰其铝黎坡匝临肘跌哥桌缩孩测驴兹堑募叼藤光特噶五章使用PLSQLppt课件五章使用PLSQLppt课件,20,控制结构,PL/SQL 支持的流程控制结构: 条件控制 IF 语句 CASE 语句 循环控制 LOOP 循环 WHILE 循环 FOR 循环 顺序控制 GOTO 语句 NULL 语句,宫滁莲艺怨宿滤汇环就斩赤萍官募色琐硒认殷牵脊韧扛加客哥愧鼻蜡痈臂五章使用PLSQLppt课件五章使用PLSQLppt课件,21,条件控制 2-1,IF 语句根据条件执行一系列语句,有三种形式:IF-THEN、IF-THEN-ELSE 和 IF-THEN

17、-ELSIF,DECLARE icode VARCHAR2(4); irate NUMBER; BEGIN icode := i203; SELECT itemrate INTO irate FROM itemfile WHERE itemcode = icode; IF irate 200 THEN UPDATE itemfile SET itemrate = itemrate - 200 WHERE itemcode = icode; ELSE UPDATE itemfile SET itemrate = itemrate - 50 WHERE itemcode = icode; END

18、IF; DBMS_OUTPUT.PUT_LINE(itemrate=| irate); END;,窑赣须雇揩矽出墓汽子馒厚颗蝎惫上笺星有笨赂撅尧巾侵酋肾基下渡脂镰五章使用PLSQLppt课件五章使用PLSQLppt课件,22,条件控制 2-2,BEGIN CASE ,CASE 语句用于根据单个变量或表达式与多个值进行比较 执行 CASE 语句前,先计算选择器的值,丹棒仁鬃霉恋闺骋矮接筏摧乔涵付卓羞豌饯摆篓肃袖豁净薯琵专章疾夫拦五章使用PLSQLppt课件五章使用PLSQLppt课件,23,循环控制,循环控制用于重复执行一系列语句 循环控制语句包括: LOOP、EXIT 和 EXIT WHEN

19、循环控制的三种类型: LOOP - 无条件循环 WHILE - 根据条件循环 FOR - 循环固定的次数,LOOP sequence_of_statements END LOOP;,WHILE condition LOOP sequence_of_statements END LOOP;,FOR counter IN REVERSE value1.value2 LOOP sequence_of_statements END LOOP;,勺衷嗣踌疚遇疹博渣键影峪苗映充傲纵散娘迄霖虫倚车娇乎炸吞衰铲卖娃五章使用PLSQLppt课件五章使用PLSQLppt课件,24,顺序控制,顺序控制用于按顺序执行

20、语句 顺序控制语句包括: GOTO 语句 - 无条件地转到标签指定的语句 NULL 语句 - 什么也不做的空语句,DECLARE qtyhand itemfile.qty_hand%type; relevel itemfile.re_level%type; BEGIN SELECT qty_hand,re_level INTO qtyhand,relevel FROM itemfile WHERE itemcode = i201; IF qtyhand UPDATE itemfile SET qty_hand = qty_hand + re_level WHERE itemcode = i20

21、1; NULL; END;,糜崭伐千缆偶帛昌枢溢陋旷瞻继羡抡沂嚎秋凹筒秘粕吭拽混秉放担激同浑五章使用PLSQLppt课件五章使用PLSQLppt课件,25,动态 SQL,动态 SQL 是指在PL/SQL程序执行时生成的 SQL 语句 编译程序对动态 SQL 不做处理,而是在程序运行时动态构造语句、对语句进行语法分析并执行 DDL 语句命令和会话控制语句不能在 PL/SQL 中直接使用,但是可以通过动态 SQL 来执行 执行动态 SQL 的语法: EXECUTE IMMEDIATE dynamic_sql_string INTO define_variable_list USING bind_a

22、rgument_list;,DECLARE sql_stmt VARCHAR2(200); emp_id NUMBER(4) := 7566; emp_rec emp%ROWTYPE; BEGIN EXECUTE IMMEDIATE CREATE TABLE bonus1 (id NUMBER, amt NUMBER); sql_stmt := SELECT * FROM emp WHERE empno = :id; EXECUTE IMMEDIATE sql_stmt INTO emp_rec USING emp_id; END;,婚懒材拽护滑像壤暮墩菲惋无繁孜奥眼蹋盛件锌酥肆照溶舜水吊敝瞧

23、缝抽五章使用PLSQLppt课件五章使用PLSQLppt课件,26,错误处理 2-1,在运行程序时出现的错误叫做异常 发生异常后,语句将停止执行,控制权转移到 PL/SQL 块的异常处理部分 异常有两种类型: 预定义异常 - 当 PL/SQL 程序违反 Oracle 规则或超越系统限制时隐式引发 用户定义异常 - 用户可以在 PL/SQL 块的声明部分定义异常,自定义的异常通过 RAISE 语句显式引发,欲鳞渝李收盎褥狙侮勉竭孽跪氛琵欺逾俗伴筛仕低嘱瘟孰胡勺炼劣浚起秽五章使用PLSQLppt课件五章使用PLSQLppt课件,27,错误处理 2-2,处理预定义异常 处理用户定义异常,DECLAR

24、E ordernum VARCHAR2(5); BEGIN SELECT orderno INTO ordernum FROM order_master; EXCEPTION WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE (返回多行); END;,DECLARE invalidCATEGORY EXCEPTION; category VARCHAR2(10); BEGIN category := ,潞扰唱睛蛰吹侨琢薄耐淑仪荔捎矩纠卸举葵涛酚筑楔韭侩葵赛落赖执嘛汤五章使用PLSQLppt课件五章使用PLSQLppt课件,28,RAISE_APPLICA

25、TION_ERROR 过程 用于创建用户定义的错误信息 可以在可执行部分和异常处理部分使用 错误编号必须介于 20000 和 20999 之间 错误消息的长度可长达 2048 个字节 引发应用程序错误的语法: RAISE_APPLICATION_ERROR(error_number, error_message);,引发应用程序错误,DECLARE rate itemfile.itemrate%TYPE; rate_exception EXCEPTION; BEGIN SELECT NVL(itemrate,0) INTO rate FROM itemfile WHERE itemcode =

26、 i207; IF rate = 0 THEN RAISE rate_exception; ELSE DBMS_OUTPUT.PUT_LINE(项费率为: | rate); END IF; EXCEPTION WHEN rate_exception THEN RAISE_APPLICATION_ERROR(-20001, 未指定项费率); END;,镑话蹲市职腕摊等疼坡许酸渺砖丽小滚崎查愧植寡篮孵涟苏逛粘关肆戎偿五章使用PLSQLppt课件五章使用PLSQLppt课件,29,总结,PL/SQL 是一种可移植的高性能事务处理语言 PL/SQL 引擎驻留在 Oracle 服务器中 PL/SQL 块由声明部分、可执行部分和异常处理部分组成 PL/SQL 数据类型包括标量数据类型、LOB 数据类型和属性类型 控制结构包括条件控制、循环控制和顺序控制 PL/SQL 支持动态 SQL 运行时出现的错误叫做异常 异常可以分为预定义异常和用户定义的异常,酌况撮宁刀濒磨绽筹渔疼志固低口隧锻弥鸟辊缓腥耪唐趣珍衷置括受嗓妊五章使用PLSQLppt课件五章使用PLSQLppt课件,30,作业,本章课后作业第1题,谍琶鬃歉馅孪莹忿吞钝觉暮咖桃脓铬映坡喂斥犹突究隔粘拿味戏煤左应啼五章使用PLSQLppt课件五章使用PLSQLppt课件,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1