惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
J
Java Code Geeks
I
InfoQ
腾讯CDC
Vercel News
Vercel News
IT之家
IT之家
V
Visual Studio Blog
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 叶小钗
有赞技术团队
有赞技术团队
月光博客
月光博客
Martin Fowler
Martin Fowler
量子位
L
LangChain Blog
B
Blog
Last Week in AI
Last Week in AI
博客园 - 司徒正美
Microsoft Security Blog
Microsoft Security Blog
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans

博客园 - 思净

oracle中的公用同义词和私有同义词? 对C#下函数,委托,事件的一点理解! - 思净 - 博客园 经典悖论漫游(下) 经典悖论漫游中 经典悖论 精彩悖论 悖论漫谈之三 悖论漫谈(二) 经典悖论 Oracle专家高级编程学习笔记 Oracle数据库结构之物理存储结构 Oracle专家高级编程学习笔记( 二) Oracle 基本知识 SQL子查询的一些例子 Oracle学习笔记---(三) Oracle学习笔记---(四) 掌握SQL四条最基本的数据操作语句 Oracle学习笔记---(五) Oracle学习笔记---(一)
简单的ORACLE存储过程
思净 · 2007-06-05 · via 博客园 - 思净

简单的ORACLE存储过程

--工资加500,OLD。SAL>2500 不加,NEW。SAL>2500 则改为2500;

SELECT * FROM EMP                                                                --加工资之前

CREATE OR REPLACE PROCEDURE SP_ADD (add IN number) is       --add参数接收传入的工资增幅

     --DECLARE
     --CURSOR emp_cur IS SELECT * FROM emp;
    
BEGIN
    
     FOR  sal_sum IN (SELECT * FROM emp) LOOP    --使用循环游标隐式打开游标emp_cur或    

                                                                                   --(SELECT * FROM emp)(在FOR循环中不需要声明此游标)
                                                                                   --自动从活动集获取行,然后在处理完所有行时关闭游标    
          IF sal_sum.sal > 2500 THEN                                             --逐行进行比较赋值
                UPDATE emp SET sal = sal_sum.sal WHERE empno = sal_sum.empno;
               
          ELSIF (sal_sum.sal + add) > 2500 THEN
                UPDATE emp SET sal = 2500 WHERE empno = sal_sum.empno;
               
          ELSE             
                UPDATE emp SET sal = sal_sum.sal + add  WHERE empno = sal_sum.empno;
          END IF;
         
     END LOOP;
    
END;


BEGIN
     SP_ADD(500);                                                                 --输入增资的幅度                                                                                                                     
END;

SELECT * FROM EMP                                                                 --加工资之后