存储过程和存储函数和触发器示例
1、存储过程示例:为指定的职工在原工资的基础上长10%的工资
SQL> create or replace procedure raiseSalary(empid in number)aspSal emp.sal%type;beginselect sal into pSal from emp where empno=empid;update emp set sal = sal*1.1 where empno=empid;dbms_output.put_line('员工号:' || empid || '涨工资前' || psal || '涨工资后' || psal*1.1);end;/Procedure createdSQL> set serveroutput onSQL> exec raisesalary(7369);
员工号:7369涨工资前
800涨工资后880
PL/SQL procedure successfully completed
2、存储函数示例:查询某职工的年收入。
SQL> /** 查询某职工的总收入 */
create or replace function queryEmpSalary(empid in number)return numberaspSal number; --定义变量保存员工的工资 pComm number; --定义变量保存员工的奖金beginselect sal,comm into psal,pcomm from emp where empno = empid;return psal*12+nvl(pcomm,0);end;/Function createdSQL> declarev_sal number;beginv_sal:=queryEmpSalary(7934);dbms_output.put_line('salary is:'|| v_sal);end;/salary is:15600PL/SQL procedure successfully completedSQL> begindbms_output.put_line('salary is:'|| queryEmpSalary(7934));end;/salary is:15600PL/SQL procedure successfully completed
3、创建触发器示例1:限制非工作时间向数据库插入数据
SQL> create or replacetrigger securityEmpbefore insert on empdeclarebeginif to_char(sysdate,'day')in('星期四','星期六','星期日')or to_number(to_char(sysdate,'hh24'))not between 8 and 18 then raise_application_error(-20001,'不能在非工作时间插入数据。');end if;end;/Trigger created
4、创建触发器示例2:确认数据(检查emp表中sal 的修改值不低于原值)
SQL> create or replace trigger checkSalbefore update of sal on empfor each rowdeclarebeginif :new.sal<:old.sal thenraise_application_error(-20001,'更新后的薪水比更新前小');end if;end;/Trigger created
转载于:https://www.cnblogs.com/smart9595/p/3818202.html
存储过程和存储函数和触发器示例相关推荐
- oracle 查看函数被哪些触发器引用_oracle如何查看存储过程,存储函数,触发器的具体内容...
(1)set serveroutput on 实现plsql developer 打印输出 (2)如何查看存储过程,存储函数,触发器的内容 查 user_sources表 eg:查询GET_DEPT_ ...
- 【MySQL数据库设计与应用(六)】存储程序(存储过程,存储函数,触发器,事件)
文章目录 1 存储程序介绍 1.1 什么是存储程序 1.2 存储例程 1.3 触发器 1.4 事件 2 创建和调用存储过程 2.1 创建和调用存储过程 2.2 存储过程的参数模式 2.3 存储过程返回 ...
- Oralce数据库之存储过程、存储函数、触发器和数据字典
Oracle数据库总结 Oracle数据库之集合运算 Oracle数据库之数据处理 Oracle数据库之建表和管理表 Oracle数据库之对象视图.索引.序列.同义词 一.存储过程和存储函数 1.概念 ...
- MySQL学习笔记 05、触发器、存储过程、存储函数、定时任务
文章目录 前言 一.触发器 提前准备测试表 1.1.创建触发器 1.2.删除触发器 二.存储过程 2.1.认识变量 2.1.1.系统变量 2.1.2.用户变量 2.2.存储过程创建 2.3.删除存储过 ...
- Oracle-存储过程、存储函数、触发器
Oracle-存储过程.存储函数.触发器 目录 文章目录 1.存储过程 1.1.概念 1.2.创建语法 1.3.实例 2.存储函数 3.out类型参数 4.存储过程与存储函数直接的区别 3.触发器 * ...
- oracle as 不可以省略,Oracle:存储过程,存储函数
什么是存储过程和存储函数:指存储在数据库中供所有用户程序调用的子程序叫做存储过程.存储函数. 这个子程序是用PL/SQL写的.可以用Java程序调用,就是完成特定功能的子程序. 用create pro ...
- Mysql存储过程和存储函数
存储过程和存储函数 前言 存储过程的相关操作 创建 调用 查看 删除 语法 变量的定义与赋值 if条件判断 参数 case结构 while循环 repeat循环结构 loop语句 leave语句 游标 ...
- oracle存储过程与函数的区别及作用,Oracle存储过程与存储函数-入门
文章思维导图 一. 存储过程和存储函数的定义 定义:存储在数据库中,供所有用户程序调用的子程序叫做存储过程/存储函数.复杂点的解释:存储过程(Stored Procedure),就是一组用于完成特定数 ...
- 【宋红康 MySQL数据库】【基础版】【15】存储过程与存储函数
文章目录 存储过程与存储函数 定义存储过程与存储函数 对比存储函数和存储过程 存储过程概述 理解 分类 创建存储过程 语法分析 代码举例 调用存储过程 调用格式 代码举例 如何调试 存储函数的使用 语 ...
最新文章
- MIT新研究给量子计算机「泼冷水」:自然界辐射会干扰它,需要研究新对策 | Nature...
- jupyter python版本_Ubuntu Desktop 16.04 LTS 下成功配置Jupyter的两个python内核版本(2.7x,3.5x)...
- 医生c语言测试卷b卷的答案,合肥工业大学C语言期中测试题_B卷
- 关于一类docker容器闪退问题定位
- leetcode lcp2 分式化简
- Windows PowerShell 2.0语言开发之脚本块
- LinkedHashMap内部实现
- SSIS高级转换任务—导出列
- 非全日制考研计算机教育,22考研之全日制与非全日制的区别
- 系统版本与服务器版本不一致,服务器sql版本不一致,请问如何恢復备份
- 《离散数学及其应用》【张清华版】 第四章习题总结
- html5妇女节游戏,2018三八妇女节趣味游戏大全
- c语言整形符号位_c语言无符号整型表示
- python getsize函数,Python getsize函数
- LCD(GEC6818)
- 【Mathtype】安装Mathtype后,word无法粘贴的问题
- Spring Security 实战内容:实现自定义退出登录
- 图的点连通度边连通度总结
- 拉伸图片的时候怎么才能让图片不变形
- android4.4.2小游戏,安卓模拟器4.4.2内核之上的穹顶之战 夜神1.1.3版本到来
热门文章
- python爬取去哪网数据_Python爬虫入门:使用Python爬取网络数据
- linux 5.5 外接usb2.0硬盘,RHEL5 使用pam_usb
- 制定交叉编译工具_制作交叉编译工具链的方法总结(详细)
- T计算机硬件系统是指,计算机硬件系统试题 有答案
- oracle12542,Oracle 11Gr1监听报错 TNS-12542 12560 00512
- java基类能调用虚函数_如果我要重写基类的虚函数,可以调用它吗?
- C++轻量级微服务_微服务的部署
- python中filter用法_filter用法--Python
- channelinboundhandler中都包含了哪一类的方法_标准气体的分类类别与相关气体配置方式方法...
- 基于增量更新的协同过滤