典型数据库ORACLEch41(PLSQL设计).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
典型数据库ORACLEch41(PLSQL设计)

第四章 PL/SQL;PL/SQL基础;PL/SQL基本概念;PL/SQL程序结构;定义部分;定义部分;;2、声明一个变量,使它的类型与某个变量或数据库基本表中某个列的数据类型一致。(不知道该变量或列的数据类型)可以使用 %TYPE(P209) ,如果变量或表列数据类型发生变化,它会自动随之而变。 DECLARE eno EMP.EMPNO%TYPE; …… DECLARE teacher_name char(5); student_name teacher_name%TYPE; BEGIN …… END;定义部分;定义部分;2、声明一个记录型变量,使它的类型与某个基本表的数据结构一致,可以使用%ROWTYPE的形式定义。 DECLARE emp_value emp%ROWTYPE; BEGIN ……;可执行部分 ;赋值语句 赋值符号为‘:=’。 格式:变量 := 表达式; [示例]赋值的几种情况。 1、标量型变量赋值 tname := ‘LIU’; 2、记录类型变量的赋值 student1.sno:=‘980101’; student1.sname:= ‘LILY’; student1.sex:=‘女’; ;3、%ROWTYPE型变量的赋值 emp_value.ename:=’BLACK’; emp_value.empno:=8888; emp_value.deptno:=10; 4、用SELECT语句为%ROWTYPE型变量整个赋值 SELECT * INTO emp_value FROM emp WHERE ename:=’ BLACK’; ;可执行部分: SQL语句;[示例2]计算表EMP中所有雇员的平均工资。 DECLARE avg_sal NUMBER; BEGIN --使用select语句进行赋值 SELECT AVG(sal) INTO avg_sal FROM emp; DBMS_OUTPUT.PUT_LINE(avg_sal); END; /;;;PL/SQL的流程控制 ;条件控制;条件控制;条件控制;循环控制语句(P229);循环控制语句;循环控制语句;循环控制语句;跳转语句;跳转语句;PL/SQL中的异常处理;预定义的异常处理(P217);预定义的异常处理;用户自定义的异常处理(P219);游标的使用 (P213);游标的概念 ;定义游标 CURSOR 游标名 IS SELECT 语句; 打开游标 OPEN 游标名;--打开游标,实际上是执行游标定义时对应的SELECT语句,将查询结果检索到工作区中,指针指向结果集中第一条记录。 提取数据 FETCH 游标名 INTO 变量1,变量2,...;--当前行取入变量,推进游标指针。 关闭游标 CLOSE 游标名;--使游标所对应的内存工作区变为无效,并释放与游标相关的系统资源。;游标的属性 ;[说明] 游标属性只能在PL/SQL块中使用,不能在SQL命令中使用。 属性的引用格式 游标名[属性名] [说明] 属性名与游标名之间没有空格。 ;游标的属性;DECLARE row emp%rowtype; increment number(4); CURSOR cursor_emp IS select * from emp; BEGIN OPEN cursor_emp; LOOP FETCH cursor_emp INTO row; EXIT WHEN cursor_emp%NOTFOUND; IF row.deptno = 10 THEN increment:=100; ELSIF row.deptno = 20 THEN increment := 200; ELSE increment:= 300; END IF; ; UPDATE emp SET sal = sal+ increment WHERE ename = row.ename; END LOOP; CLOSE cursor_emp; END; / ;FOR循环中游标的使用(P215);FOR循环中游标的使用;DECLARE increment number(4); CURSOR cursor_emp is select * from emp; BEGIN FOR i IN cursor_emp LOOP -- 隐含打开,隐含提取 IF i.deptno = 10 THEN increment:

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档