首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

求解,ORACLE的小疑点,入门级的

2012-03-05 
求解,ORACLE的小问题,入门级的定义v_depno代表用户输入的部门编号,根据此编号修改EMP表中此部门名称为’IT’

求解,ORACLE的小问题,入门级的
定义v_depno代表用户输入的部门编号,根据此编号修改EMP表中此部门名称为’IT’
定义v_depname代表用户输入的需要删除的部门名称,从EMP表中删除此部门名称的记录
定义emp_id代表用户输入的员工id,从EMP表中获取此员工的工资,如果工资小于EMP表中的平均员工工资,则将此员工工资增加500
这貌似都是一类的问题,要求是调用函数,我用的是SCOTT.EMP表,求大大们教我一下,PL/SQL语句

[解决办法]
写一个存储函数就完了。
只写第1个吧,修改部门名称

SQL code
create or replace function FunAlterDepartmentName(v_depno varchar(20)) return varchar2 is  Result varchar2;begin  update scott.EMP set deptname = 'IT' where deptno = v_depno;  Result = 'IT';  return(Result);end FunAlterDepartmentName;
[解决办法]
SQL code
CREATE OR REPLACE PROCEDURE USP_DML(V_DEPNO IN VARCHAR2,V_DEPNAME IN VARCHAR2,v_EMP_ID IN VARCHAR2)ASDECLARE V_SALARY NUMBER;V_AVG_SALARY NUMBER;BEGINUPDATE SCOTT.EMP SET DEPNAME='IT' WHERE DEPNO=V_DEPNO;DELETE FROM SCOTT.EMP WHERE DEPNAME=V_DEPNAME;SELECT AVG(SALARY) INTO V_AVG_SALARY FROM SCOTT.EMP;SELECT SALARY INTO V_SALARY FROM SCOTT.EMP WHERE EMP_ID=V_EMP_ID;IF(V_SALARY < V_AVG_SALARY) THENupdate SCOTT.EMP set salary=salary+500 where emp_id=v_EMP_ID;END IF;END; 

热点排行