본문 바로가기

전체 글810

Procedure, Function, Package * 실습개요 - 사원의 급여를 조정하는 프로시저를 생성한다. - 사원의 연봉을 구하는 Function을 생성한다. - 사원의 퇴직급여를 구하는 Function을 생성한다. - 사원정보를 삭제하는 Procedure를 생성한다. - 사원의 입사일자를 구하는 Function을 생성한다. - 개발자를 위해 각 Procedure, Function의 사용법을 알려주는 Function을 생성한다. - 관련된 Procedure 및 Function 들을 Package로 묶는다. * 사원급여 조정 Procedure CREATE OR REPLACE PROCEDURE scott.adjust_sal (v_flag VARCHAR2, v_empno NUMBER, v_pct NUMBER) AS BEGIN IF v_flag='INCR.. 2012. 3. 22.
Procedure, Function & Package 개념 - PL/SQL은 Database 내에서 절차적인(Procedural) 처리를 할 수 있도록 지원하는 3GL 언어이다. - Procedure와 Function 은 PL/SQL, java, C 등을 이용하여 작성 - Procedure는 실행 결과를 리턴하지 않고 - Function 은 실행결과를 리턴한다. - Package는 관련된 Procedure와 Function들의 묶음이다. - Package는 Header 부분과 Body 부분으로 구성되어진다. - Business Logic을 Stored Procedure 내에 두면 Application 수정없이 System을 변경 할 수 있고(유연성) Performance를 향상 시킬 수 있다. 2012. 3. 22.
Database Event Trigger - 사용자의 Logon, Logoff 추적하는 Trigger CREATE OR REPLACE TRIGGER log_logon AFTER LOGON ON DATABASE WHEN (USER='SCOTT' OR USER LIKE 'SYSTEM%') BEGIN INSERT INTO trigger_log VALUES ('LOGON ' || USER, sysdate); COMMIT; END; CREATE OR REPLACE TRIGGER log_logoff BEFORE LOGOFF ON DATABASE WHEN (USER='SCOTT' OR USER LIKE 'SYSTEM%') BEGIN INSERT INTO trigger_log VALUES ('LOGOFF ' || USER, sysdate); COMMIT; END 2012. 3. 22.
DDL Trigger - create, alter, drop 행위를 추적하는 Trigger를 만듬 CREATE OR REPLACE TRIGGER audit_object_create AFTER CREATE ON SCHEMA -- 현재 내 SCHEMA 안에서만 추적하라 ( 전체라면 DATABASE로 ) BEGIN INSERT INTO trigger_log VALUES ('CREATE ' || sys.dictionary_obj_type || ' ' || sys.dictionary_obj_name || ' by ' || sys.login_user, sysdate); END; CREATE OR REPLACE TRIGGER audit_object_alter AFTER ALTER ON SCHEMA BEGIN INSERT INTO trig.. 2012. 3. 22.
INSTEAD OF Trigger - bird, fish, mammal Table, animal View - 사용자는 animal View 만 볼 수 있는 권한을 준다. - View를 통해서 데이타를 insert 해 본다. CREATE TABLE bird ( bird_name VARCHAR2(10) NOT NULL PRIMARY KEY, weight NUMBER(5,2) ); CREATE TABLE fish ( fish_name VARCHAR(10) NOT NULL PRIMARY KEY, weight NUMBER(5,2) ); CREATE TABLE mammal ( mammal_name VARCHAR(10) NOT NULL PRIMARY KEY, weight NUMBER(5,2) ); CREATE OR REPLACE VIEW animal.. 2012. 3. 22.
Synonym Synonym이란 : 동의어다. - 객체 이름을 단순화 시켜주는 객체 - Table, view, procedure, trigger 등 객체에 대한 다른 이름을 제공 - 사용자에게 위치 투명성 제공 CREATE synonym e for emp ; select * from e; connect system/manager; select * from scott.emp; // 이걸 알릴 필요 없을 경우 create synonym e for scott.emp; select * from e; drop synonym; - synonym와 관련 dictionary SELECT synonym_name, table_owner, table_name FROM user_synonyms; 2012. 3. 22.