Database/PLSQL (119) 썸네일형 리스트형 096 - [Oracle PL/SQL] Compiler - Introduction * SELECT name, value FROM v$parameter WHERE name ='plsql_code_type' 다음 4개의 옵션에 대해서 알아보자 095 - [Oracle PL/SQL] Triggers - 프로시져 호출 방법 및 주의 사항 트리거에서 프로시져 호출하는 방법 You can also pass parameters to the procedureCall p1(:new.emp_id ) 트리거 장점 트리거 관련 권한 설정 주의 사항 트리거 생성시 참고할 가이드라인 094 - [Oracle PL/SQL] Triggers - system event trigger sys 사용자로 로그인-- 로그인을 sys 유저로 로그인.alter session set container=orclpdb;show con_name------------------------------Session altered.CON_NAME ------------------------------ORCLPDB 테이블 생성 및 트리거 생성drop table log_table;/create table log_table(user_id varchar2(100), log_date date, action varchar2(100) );create or replace trigger logon_tafter logon on databasebegin insert into log_table values (user,s.. 093 - [Oracle PL/SQL] DDL triggers ( Schema or Database ) 이전까지는 테이블이나 뷰를 대상으로 트리거에 대해서 알아보았습니다.이번에는 스키마, 데이터베이스에 대한 트리거에 대해서 알아보겠습니다. 스키마 트리거 생성 - 특정 시간에만 create 명령어를 수행할 수 있음CREATE OR REPLACE TRIGGER before_create_triggerBEFORE CREATE ON SCHEMA -- CREATE/ALTER/DROPBEGIN if to_number(to_char(sysdate,'hh24')) not between 8 and 16 then raise_application_error(-20001, 'Create not Allowed now'); end if;END; 테스트 결과 - 현재 시간이 8-16시 사이가 아니여.. 092 - [Oracle PL/SQL] Triggers vs Procedures 091 - [Oracle PL/SQL] Trigger - Mutating & ON DELETE CASCADE PK 설정으로 인한 mutating 이 발생하는 경우에 대해서 알아보겠습니다. 테스트를 위한 테이블 생성 - 부모 테이블drop table DPET_parent;/CREATE TABLE DPET_parent(DEPTNO NUMBER, DNAME VARCHAR2(20), CONSTRAINT DPET_parent_PK PRIMARY KEY (DEPTNO ) ); INSERT INTO DPET_parent (DEPTNO,DNAME)VALUES (1,'HR DEPT');INSERT INTO DPET_parent (DEPTNO,DNAME)VALUES (2,'PO DEPT');COMMIT;SELECT * FROM DPET_parent;------------------------------- DEPTNO .. 090 - [Oracle PL/SQL] Trigger - Mutating(compound & array) Mutating 오류가 발생하는 경우는 많이 있습니다.이번에는 모든 부서별 월급 상/하한선을 감시하는 트리거를 만들어 보겠습니다.저장할 값이 많아서 배열을 이용하여 저장하는 방식으로 구현하였습니다. 준비단계-- 준비 단계, 복사본 테이블을 만들어서 테스트 합니다drop table emp_copy/create table emp_copyas select * from employees;--복사된 테이블 확인select EMPLOYEE_ID, FIRST_NAME,HIRE_DATE, JOB_ID,SALARYfrom emp_copywhere job_id='IT_PROG'order by salary;---------------------------------------EMPLOYEE_ID FIRST_NAME .. 089 - [Oracle PL/SQL] Trigger - Mutating error 트리거를 사용하다 Mutating 오류가 발생하는 이유와 해결하는 방법에 대해서 알아보자. 오류가 발생하는 이유는 실행한 쿼리의 일부 필드가 트리거에서 실행하는 쿼리와 충돌이 발생할 경우이다.다시 말하면 테이블이 수정되고 있는 상황에서 트리거가 같은 테이블을 접근하려 할때 발생한다. 예를 들어보면 신규 고객정보를 입력시, 고객 번호를 새로 만들어야 하는데, 시퀀스.nextval 을 사용하는 경우가 아니고 max(고객번호) + 1 같이, 기존의 고객번호의 최대값을 이용할 경우,아래와 같이 트리거를 작성할 수 있다. -- 준비 작업drop table customers/create table customers( cust_id number, cust_name varchar2(20));-- customers.. 이전 1 2 3 4 5 6 7 ··· 15 다음