Oracle知识点总结2

1. PL/SQL结构

a) DECLARE: 申明变量,游标(:=来赋初值)

b) BEGIN: 表示程序开始

c) EXCEPTION: 表示异常

d) END; : 表示程序结束

2. 流程控制

a) 条件结构: IF-THEN、IF-THEN-ELSIF

b) Case语句: case

      end  case;

c)  循环结构:(LOOP、WHILE-LOOP、FOR-LOOP)

LOOP

Statements;

End LOOP;

3.事务:TRANSACTION(commit  和 rollback)

是不可分割的工作逻辑单元,作为一个整体提交,要么执行,要么不执行

a) 原子性  Atomicity:  不可分的,一体的

b) 一致性  Consistency: 数据在执行后一致的

c) 隔离性  Isolation : 事务之间彼此独立、隔离

d) 永久性  Durability : 修改之后就是永久的

4.数据存储


a) 存储过程

CREATE OR REPLACE PROCEDURE 过程名  

IS

BEGIN

END;


例子:

CREATE OR REPLACE PROCEDURE P_DEPT_DNAME
AS
 CURSOR C_DEPT IS SELECT * from dept;
BEGIN
  FOR V_ROW IN C_DEPT
    LOOP
      DBMS_OUTPUT.PUT_LINE(V_ROW.DNAME);
    END LOOP;
END;
 

 


b) 定义函数

CREATE OR REPLACE FUNCTION 过程名  

AS

BEGIN

SQL;

RETURN;

END;

 

例子:

CREATE OR REPLACE FUNCTION F_GETENAMEBYEMPNO(V_EMPNO VARCHAR2)
  RETURN VARCHAR2
  AS
  V_ENAME EMP.ENAME%TYPE;
BEGIN
  SELECT E.ENAME INTO V_ENAME FROM EMP E WHERE E.EMPNO = V_EMPNO;
  RETURN V_ENAME;
END;



c) 游标:游标用来处理数据库中检索的多行记录(使用select语句)

静态游标:结果集已经确定

(隐式游标,显式游标)

动态游标

声明游标—>打开游标—>处理游标(把取得结果放入pl/sql中)—>关闭游标


例子:

CREATE OR REPLACE PROCEDURE P_SALARY_1
AS
  CURSOR C_EMP IS SELECT EMPNO,SAL FROM EMP WHERE JOB='CLERK';
  V_EMPNO EMP.EMPNO%TYPE;
  V_SAL EMP.SAL%TYPE;
BEGIN
  --打开游标
  OPEN C_EMP;
  LOOP
    IF C_EMP%NOTFOUND THEN
      EXIT;
    END IF;
    
    FETCH C_EMP
      INTO V_EMPNO,V_SAL;
    IF V_SAL<900 THEN
      UPDATE EMP E SET E.SAL=E.SAL+500 WHERE E.EMPNO=V_EMPNO;
    END IF;
  END LOOP;
  --关闭游标

  CLOSE C_EMP;
  COMMIT;
  EXCEPTION
    WHEN OTHERS THEN
      ROLLBACK;
END;
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值