--emp_process 프로시져 만들고
--SQL> set serveroutput on
--SQL> exec emp_process
--emp_process2 프로시져 만들고 (부서별 조회)
--SQL> exec emp_process2
--emp_process3 프로시져를 만들고 (업데이트)
--SQL> exec emp_process3
--test4,test5,
--페키지 emp_comm
--dbms_job 패키지
--일정 시간 간격으로 DB작업을 수행
--1. submit : 새로운 job를 등록하는 프로시져
--2. run : 등록된 job을 실행하는 프로시져
--3. remove : 등록된 job을 제거하는 프로시져
create table job_table(
seq number(5),
job_date date
);
--프로시저 만들기 JOB_TEST
--SQL> var job number;
--SQL> exec dbms_job.submit(:job,'job_test;' , sysdate, 'sysdate+10/36000';
--SQL> exec dbms_job.run(:job);
--SQL> exec dbms_job.remove(:job);
--트리거(Trigger)
--테이블의 변경을 자동 감지해서 다른 테이블을 작업을 수행
--예를 들어 게시물이 등록되면 게시물테이블에 데이터가 입력되고,
--게시물카운트테이블에도 데이터가 입력되게 하겠다.
--로깅, 보안, 감사에 많이 쓰임
--트리거의 구성요소
--1.트리거의 유형
--1)문장레벨의 트리거 : 테이블에 update, insert, delete가 일어나면
-- 단한번만 트리거를 발생시킴(트리거의 수 = 1)
--2)행레벨의 트리거 : 테이블에 update,insert,delete가 일어나면
-- 모든행에 대해 트리거를 발생시킴(트리거의 수 = 행의 수)
--2. 트리거의 타이밍
--1) before : 테이블에 update, insert, delete 가 일어나기 전
--2) after : 테이블에 update, insert, delete 가 일어난 후
--3. 트리거의 이벤트
--1) update
--2) insert
--3) delete
--test1_trigger
--sql)update emp set sal = sal * 1.0;
create table dept_same (
deptno number(2),
dname varchar2(14),
loc varchar2(10),
o_deptno number(2),
o_dname varchar2(14),
o_loc varchar2(10),
gubun varchar2(10),
chk date
);
--test2_trigger 생성
--SQL> insert into dept values(99,'CCC','SEOUL');
--update dept set loc = 'busan' where deptno=99;
--delete from dept where deptno=99;
--트리거의 상태 변경
--1. 트리거 활성화/비활성화
--alter tirgger 트리거 이름 enable
--alter tirgger 트리거 이름 disable
--2. 테이블에 관련된 모든 트리들을 활성화/비활성화
--alter table 테이블명 enable all triggers;
--alter table 테이블명 disable all triggers;
--3. 트리거 재컴파일
--all trigger 트리거명 compile;
--4. 트리거 제거
--drop trigger 트리거명;
--데이터 사전
--사용자의 객체 정보 : user_objects
select object_name, object_id, object_type, created, timestamp, status
from user_objects;
select object_name from user_objects where object_type='PROCEDURE';
-- 소스코드 : user_source
select name, type, line, text
from user_source where name='TAX';
select name, type, line, text
from user_source where name='TEST5';
-- 사용자의 에러 정보 : user_errors
select * from user_errors;
--사용자의 트리거 정보 : user_triggers
select trigger_name, trigger_type, triggering_event, table_name, status from
user_triggers;
--사용자 객체들의 상호참조 정보 : user_dependencies
select * from user_dependencies where referenced_name = 'EMP';
--사용자의 테이블 정보
select * from user_tables;
--사용자의 뷰 정보
select * from user_views;
--사용자 인덱스 정보
select * from user_indexes;
--사용자의 제약조건 정보
select * from user_constraints;
--바인드 관련 자료
--http://blog.naver.com/nkmin80?Redirect=Log&logNo=140032147
'ORACLE' 카테고리의 다른 글
Installation of Oracle 10g on Centos Linux 5 (0) | 2009.11.11 |
---|---|
Oracle 10g 의 휴지통 기능 (0) | 2009.11.11 |
PL/SQL의 이해-2009/02/19 (0) | 2009.11.11 |
내장함수의 이해-2009/02/18 (0) | 2009.11.11 |
객체, 시퀀스, 조인, 뷰의 이해-2009/02/17 (0) | 2009.11.11 |