- 1、本文档共75页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PL/SQL开发--程序流程控制 while循环结构 实例 set serveroutput on; declare i number(5):=1; total number(5):=0; begin while i=100 loop total:=total+i; i:=i+1; end loop; dbms_output.put_line(1-100之间的和:||total); end; PL/SQL开发--程序流程控制 练习 1、打印乘法口诀表 2、打印水仙花数 3、编写程序,向表中输入10000条记录 PL/SQL开发--存储过程 创建存储过程 create [or replace] procedure 存储过程名(形式参数) is|as 本地变量声明 begin 执行语句 exception 异常处理代码 end; PL/SQL开发--存储过程 创建存储过程--实例 create or replace procedure change_salary(v_empno in number,v_new_sal in number) is v_name emp.ename%type; begin select ename into v_name from emp where empno=v_empno; update emp set sal=v_new_sal where empno=v_empno; dbms_output.put_line(v_name||工资修改完毕); commit; end; PL/SQL开发--存储过程 执行存储过程 execute 存储过程名 set serveroutput on; exec change_salary(7369,8888); 删除存储过程 drop procedure change_salary; PL/SQL开发--存储过程 存储过程练习 编写一个给特殊雇员加薪10%的存储过程,同时检查如果已经雇佣该雇员超过60个月,则给他额外加薪3000。 PL/SQL开发--存储过程 crete or replace procedure raise_sal(no in number) as vhiredate date; vsal emp.sal%type; begin select hiredte,sal into vhiredate,vsal from emp where empno=no; if months_between(sysdate,vhiredate)60 then vsal:=nvl(sal,0)*1.1+3000; else vsal:=nvl(sal,0)*1.1; end if; update emp set sal=vsal where empno=no; end; PL/SQL开发--触发器 触发器是与存储过程类似的另外一种保存在数据库服务器端的PL/SQL程序单元,但运行机制存在明显差别,触发器不能由用户或应用程序显示调用,而是与特定的数据表、视图操作或数据库事件联系到一起,当进行特定操作或发生特定事件时系统将自动触发并执行相关的触发器程序代码。 PL/SQL开发--触发器 实例1 create or replace trigger secure_dept before insert on dept begin if(to_char(sysdate,DAY) in(星期六,星期日)) or (to_char(system,hh24:mi) not between 08:00 and 18:00) then raise_application_error(-20001,你只能在工作时间对dept表执行插入操作); end if; end; PL/SQL开发--触发器 实例2 create or replace trigger secure_dept before insert or update or delete on dept declare user_name varchar2(20); begin if (to_char(sysdate,DY) in (星期六,星期日)) or (to_char(sysdate,HH24)) not between 08 and 18) then if deleting then raise_application_error(-20002,只允许在工作时间内执行数据删除
您可能关注的文档
- 排水改造施工组织设计详解.doc
- 数控车床编程详解.ppt
- 排水工程(上)第一章排水系统概论详解.ppt
- 物流学(崔介何第五版)第11章国民经济物流讲述.pptx
- 数据分析系统—用户操作手册详解.doc
- 数控车床基本操作(转)详解.ppt
- 数据基础业务技术详解.ppt
- 数据结构(算法)总结详解.doc
- 数据结构C语言描述(耿国华)第3章详解.ppt
- 排痰机的操作流程详解.ppt
- 基于改进的CLV模型的互联网医疗企业价值评估研究.docx
- 不同运输模式下的铁路快运组织方案研究.docx
- 低年级小学语文教科书插图分析研究.pptx
- 机电设备安装合同.doc
- 从数学语言到数学模型:小学数学的思维进阶路径.pptx
- 9.1 文化发展的必然选择(说课稿)-2024-2025学年高二政治《哲学与文化》高效精品说课稿+说课稿(统编版必修4).docx
- 【9历期末】安徽省淮南市潘集区联考2024-2025学年九年级上学期1月月考历史试题.pdf
- 部编版一年级语文下册第一单元测试卷(两套)有答案.pdf
- 安徽省合肥市蜀山区2023-2024学年八年级上学期期末物理试题.docx
- 大陆与台湾小学数学教材中分数除法的编排比较.pptx
文档评论(0)