**1.编制各种控制结构的PL/SQL程序(函数):
根据姓名修改SCOTT用户下emp表中职工工资,修改规则是:DEPTNO字段的值若为10,则工资加100元;若为20,则工资加300元,否则工资加400元,程序编好后,请用姓名为“SMITH”(注意大小写敏感哦)的调用。

create or replace function updateSal
(p_ename scott.emp.ename%TYPE)
RETURN scott.emp.sal%TYPE
ASv_deptno scott.emp.deptno%TYPE;v_sal scott.emp.sal%TYPE;v_addSal scott.emp.sal%TYPE;v_currentSal scott.emp.sal%TYPE;
BEGINSELECT deptno,sal INTO v_deptno,v_sal FROM scott.emp WHERE ename=p_ename;DBMS_OUTPUT.PUT_LINE('原工资'||v_sal);IF v_deptno=10 Then v_addSal:=100;ELSIF v_deptno=20  Then v_addSal:=300;ELSE v_addSal:=400; END IF;update scott.emp set sal=v_sal+v_addSal where ename=p_ename;SELECT sal INTO v_currentSal FROM scott.emp WHERE ename=p_ename;DBMS_OUTPUT.PUT_LINE('现工资'||v_currentSal);return v_currentSal;
EXCEPTION WHEN NO_DATA_FOUND THENDBMS_OUTPUT.PUT_LINE('The deptno is invalid!');
END updateSal;

2. 编制PL/SQL程序: 对SCOTT用户的EMP表中的每一个雇员按不同情况征收个人所得税。将各雇员的雇员号(empno)、姓名(ename)及所得税(stax)存放于名为TAX(TAX表自己创建,包括三个属性:empno、ename、stax)的表中。如果工资低于3000则不收税,3000-5000的部分征收10%的税。高于5000元的部分征收20%的税。

BEGIN
DEClARE
CURSOR c_emp IS SELECT empno,ename,sal from scott.emp;
v_emp  c_emp%ROWTYPE;
v_stax number(7,2);
BEGINopen c_emp;LOOPFETCH c_emp INTO v_emp;EXIT WHEN c_emp%NOTFOUND;IF v_emp.sal<=3000 Then v_stax:=0;ELSIF v_emp.sal>3000 and v_emp.sal<=5000   Then v_stax:=v_emp.sal*0.1;ELSE v_stax:=v_emp.sal*0.2;END IF;INSERT INTO SCOTT.tax(empno,ename,stax) values(v_emp.empno,v_emp.ename,v_stax);END LOOP;
CLOSE c_emp;
END;
END;

1运行结果

2运行结果

Oracle PLSQL相关推荐

  1. 【转】oracle PLSQL基础学习

    [转]oracle PLSQL基础学习 --oracle 练习: /**************************************************PL/SQL编程基础****** ...

  2. mysql plsql循环语句吗,Oracle PLSQL 在游标中用while循环实例程序

    Oracle PLSQL 在游标中用while循环实例程序 Oracle PLSQL 在游标中用while循环实例程序 Oracle PLSQL 在游标中用while循环实例程序 declare cu ...

  3. lower() oracle,PLSQL LOWER用法及代码示例

    PLSQL LOWER函数用于将指定字符串中的所有字母都转换为小写.如果字符串中的字符不是字母,则不受此功能的影响. 要转换的char可以是任何数据类型,例如CHAR,VARCHAR2,NCHAR,N ...

  4. Oracle PLSQL 导出数据table xx contains one or more CLOB columns 解决方案

    Oracle PLSQL 导出数据table xx contains one or more CLOB columns 解决方案 参考文章: (1)Oracle PLSQL 导出数据table xx ...

  5. oracle中plsql块的结构,oracle plsql的结构

    变量声明部分(没有变量可以不写declare) begin 执行部分 exception 异常处理部分 end *:declare 和 exception部分是可选的 (1)PL/sql中变量的定义 ...

  6. oracle sum函数返回类型,Oracle / PLSQL SUM函数

    这个Oracle教程解释了如何使用Oracle / PLSQL SUM函数. SUM(x) 添加x中的所有值,并返回总和. SUM函数对一组行进行操作,并返回一行输出. Null值被SUM函数忽略.您 ...

  7. oracle提交数据按键,Oracle PLSQL - 仅提交数据库链接(Oracle PLSQL - Commit only database link)...

    Oracle PLSQL - 仅提交数据库链接(Oracle PLSQL - Commit only database link) 有没有办法只通过数据库链接而不是当前会话的数据提交在表上插入/更新的 ...

  8. Oracle/PLSQL Repeat Until Loop

    Oracle/PLSQL: Repeat Until Loop Oracle doesn't have a Repeat Until loop, but you can emulate one. Th ...

  9. Oracle/PLSQL Case Statement

    Oracle/PLSQL: Case Statement In Oracle 9i, you can use the case statement within an SQL statement. I ...

  10. Oracle/PLSQL FETCH Statement

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Orac ...

最新文章

  1. 关于MySQLdb连接数据的使用(插入数据,删除数据,更新数据,搜索数据——前端页面完成这些对数据库的操作)
  2. 【LeetCode】55.跳跃游戏
  3. python代码需要背吗-python程序需要编译吗
  4. python中浮点数能用乘法吗_简单讲解Python中的数字类型及基本的数学计算
  5. PEAR简介:用PEAR来写你的下一个php程序
  6. android studio中讯飞sdk“组件未安装.(错误码:21002)”的解决办法
  7. JCreator下载地址与注册码- -
  8. 进销存系统收费标准是怎样的?
  9. SEO网站搜索引擎优化软件
  10. wxpy 扫码登录微信报错 KeyError: pass_ticket(网页版微信登录失败)
  11. 计算机it互联网有什么区别,什么叫“IT”技术
  12. html tbody增加行,实现所有行变色,所有行删除。给出的结构中少了tbody,加上就可以了。...
  13. dell emc isilon解决添加AD域后有时间不同步警告
  14. C#中实现两个程序的通信
  15. Redis介绍--列表(LISTS)数据类型(六)
  16. 滚动率、Vintage、WOE、IV、LIFT、PSI、GINI
  17. 使用Qt 6.4取消Android开发的限制
  18. 项目管理中的成本计算
  19. 基于下界函数的最优化
  20. 诛仙手游服务器维护到几点,诛仙手游9月22日更新维护到几点

热门文章

  1. 如何正确关闭MongoDB
  2. 深度学习在音频信号处理领域中的进展(截止至2019年5月)
  3. AGM FPGA使用答疑
  4. 【单片机项目】基于STM32的智能小车设计(三)软件设计
  5. pcb的制作有正负片之分
  6. 递归求2+2+22+222+............
  7. 什么是图论和图论在数字图像中的应用
  8. 汽车控制系统matlab,汽车控制系统建模与仿真(肖仁鑫)-中国大学mooc-题库零氪
  9. Cadence Allegro PCB绘制:布线后的操作教程
  10. PHP 十六大魔术方法学习