본문 바로가기

IT만들기/Database9

오라클 스케줄러(SCHEDULER), 잡(JOB)으로 일정 시간마다 또는 매일 자동 실행 등록하는 방법입니다. 오라클에서 프로시저라든지 특정 테이블에 데이터를 적재하는 등을 일정 시간, 매일 또는 매달 실행하여 작업을 해주는 경우가 종종 있습니다. 이럴 경우 수동으로 특정 시간마다 등록하는 것이 아니라 오라클에서 일정 시간마다 반복적으로 실행하도록 할 수 있답니다. 스케줄러, 잡에 반복하는 실행문을 등록하는 것은 오라클 버전에 따라 크게 2가지 방법을 사용 할 수 있습니다. 스케줄러가 정상적으로 실행되는지 확인하기 위한 예제 테이블과 프로시저를 만들어보도록 하겠습니다. 간단하게 하기 위해 샘플 테이블에는 PK 같은거 아무것도 생성하지 않도록 할께요. 스케줄러 테스트를 위한 테이블 생성 CREATE TABLE TBL_TEST( NOW_COL VARCHAR2(14) ); 스케줄러 테스트를 위한 프로시저 생성 CREA.. 2021. 7. 8.
오라클 sqlplus 에서 실행한 쿼리 조회 결과 스풀(spool) 기능으로 캡처하여 텍스트 저장하기 토드(TOAD) 등의 데이터베이스 툴을 사용하지 않고 오라클의 기본 프로그램인 SQLPLUS를 사용하면 실행한 쿼리의 조회 결과를 보기기 무척 힘듭니다. 오라클 sqlplus에서 spool 기능을 사용하여 결과를 텍스트로 저장하고 컬럼 조회TOAD) 등의 데이터베이스 툴을 사용하지 않고 오라클의 기본 프로그램인 SQLPLUS를 사용하면 실행한 쿼리의 조회 결과를 보기기 무척 힘듭니다. 오라클 sqlplus에서 spool 기능을 사용하여 결과를 텍스트로 저장하고 컬럼 조회 결과마다 컴마(,)로 출력하는 방법을 사용한다면 엑셀에서도 열어서 보기 편하게 볼수 있답니다. 데이터베이스 조회 결과를 "C:\spooltest.txt"로 저장하는 예제를 설명하도록 하겠습니다. UNIX AIX 등에서는 경로를 지정하지 .. 2021. 7. 8.
오라클(oracle) 락(lock - 세션, 로우) 확인 및 락 걸린 세션 제거(kill) 오라클에서 UPDATE 문을 실행하면 COMMIT, ROLLBACK 문을 실행하기 전에는 로우 락이 걸립니다. 로우 락이 걸리면 다른 사용자는 해당 데이터를 수정 할 수 없게 됩니다. 종종 토드(TOAD) 등의 툴에서 DB 작업을 하다보면 커밋 또는 롤백 하기 전에 프로그램이 갑자기 죽어버려서 세션이 끊기지 않은 상태로 되어 로우 락이 걸리는 경우가 있습니다. 아래에 참조 쿼리를 나열해 봤습니다. 실제 락을 푸는 쿼리는 마지막 쿼리를 봐주세요. 아래의 쿼리를 실행하고 락을 풀기 위해서는 관리자 DBA 권한이 있어야 합니다. 락 걸린 테이블 확인하는 쿼리 SELECT dbo.object_name ,dbo.owner ,dbo.object_type ,vlo.xidusn ,vlo.session_id ,vlo.l.. 2021. 1. 8.
오라클 공인교재용 샘플 DB 생성 스크립트 및 DB 삭제 오라클 공인교재용 샘플 DB 생성 스크립트 파일 내용에서 CONNECT system/manager 을 사용하는 유저명으로 바꾸어 사용하세요 오라클 샘플 DB 삭제 REM Drop teach accountCONNECT &&user_name/&&user_passwordDROP PROCEDURE add_job_history;DROP PROCEDURE secure_dml;DROP VIEW emp_details_view;DROP SEQUIENCE departments_seq;DROP SEQUIENCE employees_seq;DROP SEQUIENCE locations_seq;DROP TABLE regions CASCADE CONSTRAINTS;DROP TABLE departments CASCADE CONSTRA.. 2020. 3. 7.
오라클 함수, 프로시저 또는 트리거에서 내용 찾기를 해봅시다. 오라클 함수 또는 프로시져에서 문자열 내용 검색은일을 하다보면 특정 테이블 또는 특정 로직의 변경으로 인한영향도 조사를 하는 경우가 종종 생겨 자주 사용하게 됩니다. SELECT *FROM USER_SOURCEWHERE 1=1-- AND TYPE = 'PROCEDURE' AND UPPER(TEXT) LIKE '%커피향처럼%' ORDER BY NAME, LINE TYPE 부분은 PROCEDURE, TRIGGER, FUNCTION 등으로 함수에서만, 프로시저에서만 내용 검색을 하고자 할 때 조건을 사용하면 됩니다. 2018. 10. 12.
데이터베이스 정규화 데이터베이스 정규화 (DB 정규화) 데이터베이스 정규화 예제로 간략하게 정규화에 대한 설명을 하겠습니다. 제1 정규화 : 반복되는 필드가 없어야 합니다. 이름 암호 별명1 별명2 별명3 --------------------------------------------- A 12 바보 쪼다 천치 B 13 천재 오버 NULL C 14 상식 NULL NULL D 15 오리 NULL NULL 위와 같이 이렇게 설계 하지 않고 다음처럼 합니다. 이름 암호 -------------- A 12 B 13 C 14 D 15 id 이름 별명 --------------- 1 A 바보 2 A 쪼다 3 A 천치 4 B 천재 5 B 오버 6 C 상식 7 D 오리 이렇게 설계해야 합니다. 제2 정규화 : 중복되는 데이터를 분리해야 .. 2017. 6. 28.
오라클 암복호화 패키지 설치 방법 sqlplus로 오라클 데이터베이스에 접속합니다. cmd창에서 sqlplus "/as sysdba" 이렇게 접속하고 나면 sys 유저로 접속하게 됩니다. SQL> show user 라고 입력하면 현재 접속한 계정을 알 수 있습니다. 오라클을 설치하고 나면 초기 암호는 다음과 같습니다. 계정 : system 비밀번호 : manager 계정 : sys 비밀번호 : change_on_install 교육용 계정 : scott 비밀번호 : tiger scott 계정은 처음 접속하면 계정이 잠겨 있을겁니다. Lock 해제는 다음과 같이 해주시면 되요~ SQL> alter user scott account unlock; 1) sqlplus로 SYS 유저로 접속해서 스크립트를 다음과 같이 실행해주세요. SQL> @$O.. 2011. 12. 5.
오라클 공인교재용 SQL 샘플 DB 삭제 스크립트 REM Drop teach account CONNECT &&user_name/&&user_password DROP PROCEDURE add_job_history; DROP PROCEDURE secure_dml; DROP VIEW emp_details_view; DROP SEQUIENCE departments_seq; DROP SEQUIENCE employees_seq; DROP SEQUIENCE locations_seq; DROP TABLE regions CASCADE CONSTRAINTS; DROP TABLE departments CASCADE CONSTRAINTS; DROP TABLE locations CASCADE CONSTRAINTS; DROP TABLE locations CASCADE CONST.. 2009. 1. 7.
오라클 에러 메세지 00000,0, "성공적인 정상 종료입니다" 00001,0, "유일성 제약조건(%s.%s)에 위배됩니다" 00017,0, "트레이스 이벤트 설정이 세션에 요구되었습니다" 00018,0, "최대 세션 수를 초과했습니다" 00019,0, "최대 세션 라이선스 수를 초과했습니다" 00020,0, "최대 프로세스 수(%s)를 초과했습니다" 00021,0, "세션이 다른 프로세스에 첨부되어 있음; 세션을 변경할 수 없습니다" 00022,0, "부적절한 세션 번호; 액세스가 거절되었습니다" 00023,0, "세션이 프로세스 고유의 메모리를 참조함; 세션을 분리할 수 없습니다" 00024,0, "단일 프로세스 모드에서는 하나 이상의 프로세스가 로그인할 수 없습니다" 00025,0, "%s에 메모리를 할당하는데 실패했.. 2009. 1. 7.