공룡이라는 ORACLE 9

Procedure

프로시져는 리턴값을 가지지 못한다. 하지만 out 매개변수를 사용하여 매개변수에 값을 대입할 수는 있다. 사용하는 매개변수는 IN, OUT, INOUT 이 있다. 파라미터만을 가지는 프로시져 , IN 매개변수를 사용함 create or replace procedure proc_test( v_dno in departments.dno%type ) is v_dname departments.dname%type; begin select dname into v_dname from departments where dno = v_dno; dbms_output.put_line('프로시져 작동' || v_dname); end; / select * from user_source where name = Upper('proc_..

Trigger

트리거는 이벤트 발생시 자동으로 동작하는 프로시져이다. 이벤트란 DML 문을 이야기한다. 트리거는 크게 AFTER 트리거와 BEFORE 트리거 로 나뉜다. 행 레벨 트리거는 하나의 DML 문에 여러 로우가 변경될 시 변경된 로우마다 트리거를 작동(BEGIN ~ END) 한다. 문장 레벨 트리거는 하나의 DML 문에 하나의 트리거 작동(BEGIN ~ END)만이 발생한다. 트리거의 구분은 for each row 로 구분한다. :NEW 는 DML 작동시 새로운 값을 저장하는 임시의 테이블이다. -- 트리거는 create trigger 로 생성한다. -- 시그니처에 타이밍과 이벤트를 기재 -- for each row 는 행레벨 트리거(여러개의 로우를 변경 시 변경 마다 작동) -- for each row 생략..

FUNCTION

프로시저와 다른 점은 하나의 값만 리턴할 수 있다는 것. OUT 매개변수로 여러 값을 가져오는 프로시져. 하나만을 리턴하는 함수. FUNCTION 시그니처에 리턴 타입기재 로직에서 RETURN 문 기재 호출시 가져올 리턴변수 정의 후 받아와야함 >> EXECUTE :변수 := 함수(매개변수) -- 함수는 하나의 값만을 리턴한다. --CREATE OR REPLACE FUNCTION 이름( 매개변수 ) -- RETURN 리턴타입 --IS -- 리턴할 변수 --BEGIN -- 로직 --END; --/ CREATE OR REPLACE FUNCTION FN_SALARY_ENAME( V_NAME IN employees.f_name%TYPE -- IN 매개변수 ) RETURN NUMBER IS V_SAL NUMBER..

다중 insert 시 시퀀스 넘버가 PK 제약조건을 어긋내는 경우 해결방안.

PK 를 제외한 삽입 컬럼을 dual 테이블에 올리고 UNION ALL로 결합 결합한 테이블 로우에 시퀀스 넘버 삽입 해당 select 문의 결과를 insert --다중 인서트 문 insert into salary select salary_seq_sno.nextval , A.* from ( select '고정급여' as S_TYPE, null as unitprice from dual UNION ALL select '성과급' as S_TYPE, null as unitprice from dual UNION ALL select '프로모션_급여' as S_TYPE, null as unitprice from dual UNION ALL select '조직성과' as S_TYPE, null as unitprice f..

간단한 백업

백업을 현재 디스크에 하는 것은 아무런 의미가 없다. 전체데이터 베이스 백업 : exp userid=SYSTEM/암호@XE FULL=y FILE=경로및파일 관리자가 다른 스키마를 백업 : exp userid=SYSTEM/암호@XE OWNER=사용자명 FILE=경로및파일 일반사용자의 스키마 백업 : exp userid=사용자명/암호@XE FILE=경로및파일 일반사용자의 테이블 백업 : exp userid=사용자명/암호@XE FILE=경로및파일 TABLES=(테이블명...) 전체데이터베이스 복원 : imp userid=SYSTEM/암호@XE FILE=백업된경로 관리자가 다른 스키마를 복원 : imp userid=SYSTEM/암호@XE FROMUSER=사용자명 TOUSER=사용자명 FILE=백업된경로 일반사용..

설계, 향후 추가

데이터 모델링 객체지향 = 데이터 + 기능 구조적 개발 방법 론. 환자 > 병원 (이력, 검사, 검증) > 다음진료 계획 수립 > 계산 이를 그림으로 그린다 > DFD : Data Flow Diagram 90년대, 부서단위에서는 유용했으나 정보 공학 방법론 Information Engineering 기획은 - 정리를 잘 해야함 계산 . 여기서 나오는 중복을 제거하자는 게 ERD 다. (기능 -> 기능 분해도로 도식화) 객체 지향 방법론은 CBD 와 유사 > UML Attribute 완료 후 Table > colum 키 : 설계시 Id 완료 후 PrimaryKey 계산되는 속성들은 제거되야 함 : 생년월일은 저장하되 나이는 저장하지 않는 등. RelationShip의 종류 1 : 1 = 국가 : 국기 1 ..

강사님께 제공받은 64진수 변환 프로시저

/* Composite Pattern에 따른 상하 구성 관계는 기본적으로 Path Query에 의하여 * 개발이 가능하다. Oracle의 경우 start with connected by이다. * 하지만 구성 관계의 Level이 깊어질 수록 성능을 보장하기 힘들다. * 이에 객체 상하관계 전체를 primary key로 구성하여 Like 절을 위주로 활용한다. * 객체 ID를 숫자 기반으로 만들어내되 기 길이를 좀더 줄여서 표현하기 위하여 * Alpha-Numeric만을 사용한 최대 축약형은 제공되지 않으므로 62진법(10 + 26[대문자] + 26[소문자])에 * 따른 문자열 표현을 만들기 위하여 개발함 */ CREATE OR REPLACE FUNCTION to62(intNum number) RETURN ..

Oracle DataBase 의 인덱스.

https://coding-factory.tistory.com/419 [Oracle] 오라클 인덱스(Index) 사용법 총정리(생성, 조회, 삭제, 리빌드) 인덱스(Index)란? 인덱스는 데이터베이스 테이블에 있는 데이터를 빨리 찾기 위한 용도의 데이터베이스 객체이며 일종의 색인기술입니다. 테이블에 index를 생성하게 되면 index Table을 생성해 관리 coding-factory.tistory.com 코딩 펙토리 님의 글을 기록한 것임을 밝힙니다. 인덱스(Index)란? 인덱스는 데이터베이스 테이블에 있는 데이터를 빨리 찾기 위한 용도의 데이터베이스 객체이며 일종의 색인기술입니다. 테이블에 index를 생성하게 되면 index Table을 생성해 관리합니다. 인덱스는 테이블에 있는 하나이상의 컬..