文档介绍:条件分支结构、循环控制结构和存储过程--分页存储过程oracle
条件分支结构案例
1、编写一个过程,可以输入一个雇员姓名,如果该雇员的工资低于2000,就给该雇员工资增加10%。
/*
结构:
IF 条件 THEN
执行语句;
END IF;
*/
CREATE OR REPLACE PROCEDURE add_sal_prc(p_name IN VARCHAR2) IS
n_sal %TYPE;
BEGIN
SELECT sal INTO n_sal
FROM myemp WHERE ename = p_name;
IF n_sal < 2000 THEN
UPDATE myemp
SET sal = sal * (1 + )
WHERE ename = p_name;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
('未找到相关信息.');
END add_sal_prc;
/
2、编写一个过程,在myemp表中,如果某个雇员的工资低于2000,就给该雇员工资增加10%。
CREATE OR REPLACE PROCEDURE update_myemp_sal_prc IS
CURSOR c_test IS
SELECT * FROM myemp FOR UPDATE;
BEGIN
FOR var_data IN c_test LOOP
IF < 2000 THEN
UPDATE myemp
SET sal = sal *
WHERE CURRENT OF c_test;
END IF;
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
('未找到相关信息.');
END update_myemp_sal_prc;
/
3、编写一个过程,可以输入一个雇员姓名,如果该雇员的奖金不是0,就在原来的基础上增加100,如果奖金是0,就把该奖金设置为200;
/*
结构:
IF 条件 THEN
执行语句;
ELSE
执行语句;
END IF;
*/
CREATE OR REPLACE PROCEDURE m_prc(p_name IN VARCHAR2) IS
comm_tmp m%TYPE;
BEGIN
SELECT m, 0) comm
m_tmp
FROM myemp
WHERE ename = p_name;
m_tmp != 0 THEN
UPDATE myemp
m = comm + 100
WHERE ename = p_name;
ELSE
UPDATE myemp
m = 200
WHERE ename = p_name;
END IF;
END m_prc;
/
4、编写一个过程,在myemp表中,如果该雇员的奖金不是0,就在原来的基础上增加100,如果奖金是0,就把该奖金设置为200;
CREATE OR REPLACE PROCEDURE m_prc IS
CURSOR c_test IS
SELECT ename, sal,
m, 0) comm
FROM myemp FOR UPDATE;
BEGIN
FOR var_data IN c_test LOOP
IF m != 0 THEN
UPDATE myemp
m = comm + 100
WHERE CURRENT OF c_test;
ELSE
UPDATE myemp
m = 200
WHERE CURRENT OF c_test;
END IF;
END LOOP;
END m_prc;
/
5、编写一个过程,可以输入一个雇员编号,如果该雇员的职位是PRESIDENT就给他的工资增加1000,如果该雇员的职位是MANAGER就给他的工资的增加500,其它职位的雇员的工资增加200;
/*
结构:
IF 条件 THEN
执行语句;
ELSIF 条件 THEN
执行语句;
.
.
.
ELSE
执行语句;
END IF;
*/
CREATE OR REPLACE PROCEDURE modify_sal_prc(p_empno IN INTEGER) IS
v_job %TYPE;
BEGIN
SELECT job INTO v_job
FROM myemp
WHERE e