Oracle 기초 저장 프로 세 스 와 사무

6777 단어 Oacle 기반
1.사무 와 저장 과정
저장 과정 에서 사 무 를 어떻게 사용 합 니까?저장 과정 에서 여러 개의 추가,수정,SQL 문 구 를 동시에 실행 해 야 할 때 데이터 의 완전 성 을 확보 하기 위해 서 는 사 무 를 사용 해 야 합 니 다.사용 방식 은 PL-SQL 과 매우 비슷 하지만 차이 점도 있다.  
--        

CREATE OR REPLACE PROCEDURE Account_zhuanzhang(fromuser NUMBER,touser NUMBER,money NUMBER) IS

BEGIN

    UPDATE account SET balance = balance - money WHERE id = fromuser;

    UPDATE account SET balance = balance + money WHERE id = touser;

    COMMIT;

EXCEPTION

  WHEN OTHERS THEN

    dbms_output.put_line('    ');

    ROLLBACK;

END Account_zhuanzhang;

호출 사무
SELECT * FROM ACCOUNT;

DECLARE 

  fromuser NUMBER := 1;

  touser NUMBER := 2;

  money NUMBER := &m;

BEGIN

  account_zhuanzhang(fromuser,touser,money);

END;

 
 
2.자주 적 인 업무 처리:
자주 사무:0 개의 사무 로 시 작 된 독립 사무 처리 입 니 다.자주 적 인 사무 처 리 는 주 업무 처 리 를 중단 할 수 있다.즉,자신의 저장 과정 내부 의 사 무 를 처리 하고 자주 적 인 사 무 를 처리 한 후에 주 업무 처 리 를 회복 할 수 있다.
  PRAGMA AUTONOMOUS_TRANSACTION;  --자주 사무 로 정의 되 며,기타 사무 제출,스크롤 백 의 영향 을 받 지 않 습 니 다.
예:
--    :         ,       

CREATE OR REPLACE PROCEDURE PRO_DEPT_ADD(DEPTNO NUMBER,DNAME VARCHAR2,LOC VARCHAR2) AS

PRAGMA AUTONOMOUS_TRANSACTION;  --       ,        ,    

BEGIN

  INSERT INTO DEPT (DEPTNO, DNAME, LOC) VALUES (DEPTNO, DNAME, LOC);

    ROLLBACK;  --        ,      。

END;
--   ,      ,           ,      

CREATE OR REPLACE PROCEDURE PRO_DEPT_ADD2 AS

BEGIN

  INSERT INTO DEPT (DEPTNO, DNAME, LOC) VALUES (60, 'test1', 'test2');

  PRO_DEPT_ADD(70, 'test', 'test');     --         ,                         。          ,                   

  COMMIT;

END;

주 트 랜 잭 션 호출:
BEGIN

      pro_dept_add2();  --     , 60       ,   70        。        !

END;

 
자주 사 무 를 정리 하 다.
1.자주 적 인 사무 처리 결과 의 변 화 는 주 업무 처리 의 상태 나 최종 설정 에 의존 하지 않 습 니 다.
2.자주 적 인 사무 처리 가 제출 하거나 스크롤 백 할 때 주 업무 처리 결과 에 영향 을 주지 않 습 니 다.
3.자주 사무 제출 이 제출 되면 이 자주 사무 처리 결과 의 변 화 는 다른 사무 처리 에 있어 과제 이다.업 데 이 트 된 정보 에 접근 할 수 있 으 며,주 업무 처리 제출 을 기다 릴 필요 가 없다 는 뜻 이다.
4.자주 적 인 사무 처 리 는 다른 자주 적 인 사무 처 리 를 시작 할 수 있다.

좋은 웹페이지 즐겨찾기