写的一个ORACLE存储过程小练习

CREATE OR REPLACE PROCEDURE PRO_1112(O_NOTE OUT NUMBER,O_RESULT OUT VARCHAR2)AS
V_NO NUMBER(20);
V_NOTE VARCHAR2(200);
BEGIN
FOR XX IN(SELECT * FROM SCOTT.EMP MP) loop

if (XX.Sal>=1500) then
update TEST111 T SET T.SAL=T.SAL+500 where t.empno=xx.empno;
else
update TEST111 T SET T.SAL=T.SAL+1000 where t.empno=xx.empno;
end if;
end loop;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;

END PRO_1112;

--注意的犯错点有:
1.IF-ELSE语句 忘记写了END IF;

2.if 后面忘记写then关键字了;

3.where后面的匹配忘记写了,结果是出现了笛卡尔积。

4.菜鸟成长中。。。未完待续!

posted @ 2018-11-12 17:51  戴着面具唱着喜剧  阅读(149)  评论(0编辑  收藏  举报