Oracle Server에서 쿼리 실행 시, 결과가 많은 경우 데이터가 짤리는 경우가 있다. 이 경우, 쿼리 결과를 텍스트 파일로 저장하면 해결할 수 있다. SPOOL을 이용하여 텍스트 파일로 추출할 수 있으며, SPOOL의 기본적인 구조는 아래와 같다. ------------------------------------------------------------ SET PAGESIZE 50000; -- 페이지 출력 크기 설정 (기본 : 14, 최대 : 50000) SET ECHO OFF; -- 명령어 에코 끔 SET COLSEP '|'; -- 조회 결과 컬럼 간 구분자 '|' 설정 -- 위의 SET 하는 이유는 보기 좋도록 설정하는 것이다. 해도 그만 안해도 그만이다. -------------------..
DB/Oracle
부서에서 운영중인 솔루션에서 조회 메뉴를 개발하는데, include를 사용하여 진행했다. oracle의 경우 페이징 처리를 진행할 때, 1. count쿼리로 총 갯수를 확인한 다음 2. 본 쿼리에서 페이징을 넣어 데이터를 조회한다. 이 때, 본 쿼리와 count쿼리의 조건절은 같아야 하는데 같은 쿼리를 2번 사용하면 유지보수 하기 힘들기 때문에 include를 이용해서 개발하였다. include 사용 방법은 아래와 같다. 1. sql 태그로 재사용할 쿼리를 작성한다. WHERE STATUS = 'Y' 2. 사용할 쿼리에서 include 태그를 이용해서 쿼리를 호출한다. (refid에 sql ID를 넣는다.) SELECT * FROM EXAMPLE example1 쿼리를 호출할 때 자동으로 whereCon..
안녕하세요. 이번 포스팅은 Oracle ASM에 대하여 간단하게 정리하였습니다. 그냥 이런게 있구나~ 의 수준으로 정리하였으니 참고하실분들은 참고하셔도 좋을 거 같습니다. Oracle Storage 종류 * Ram Device - 장점 : 쓰기 속도가 빠름 - 단점 : 관리하기 불편함 * File System - 장점 : 관리하기 편함 - 단점 : 불안정함(잘 깨짐) * ASM (Automatic Storage Management) - 자동 미러링 지원(백업) - 스트라이핑 이용 (쓰기, 읽기 속도 높음) ASM(Automatic Storage Management) Oracle에서 제공하는 스토리지 관리를 자동으로 해주는 기능. 운영체제가 디스크 관리(볼륨관리자, 파일시스템의 기능) 기능을 ASM(오라클..
이번 포스팅에서는 Oracle의 Seq 사용 방법에 대해 알아보겠습니다. 1. Sequence 생성 CREATE SEQUENCE 시퀀스명 INCREMENT BY 숫자 -- 숫자만큼 증가(음수일 경우 그 숫자만큼 감소) START WITH 숫자 -- 시작 숫자 설정 MINVALUE 숫자 -- 최소값 설정 MAXVALUE 숫자 -- 최대값 설정 CYCLE/NOCYCLE -- CYCLE : 시퀀스가 최대값에 도달하면 최소값부터 다시 시작, NOCYCLE : 최대값 생성 시 시퀀스 생성 중지 CACHE/NOCACHE -- CACHE : 메모리에 시퀀스 값을 미리 할당, NOCACHE : 시퀀스값을 메모리에 할당X 예시 CREATE SEQUENCE USER_SEQ-- USER_SEQ라는 이름으로 생성 MINVAL..
쿼리에서 'ORA-01476 제수가 0 입니다' 오류가 발생하는 경우가 있다. 원인 쿼리 내의 나누는 연산에서 분모가 0일 때 발생 SELECT 1/0 FROM DUAL; -- ERROR 발생! 조치 방법 NVL과 DECODE 를 이용하여 분모가 0일 때 or NULL 일 때 0으로 출력한다. SELECT NVL(분자 / DECODE(분모, 0, null, 분모), 0) FROM DUAL; 참고 분모가 NULL 일 경우, 반환되는 값은 NULL 이다.
1. 제약조건 조회 쿼리 SELECT * FROM user_constraints; Constraint_type (제약조건 유형) C : Check On a Table O : Read Only a view P : PK R : FK U : Unique Key V : Check Option on a view 2. 인덱스 조회 방법 SELECT * FROM all_ind_columns
- AutoCommit 상태 확인 show autocommit; - AutoCommit 켜기 set autocommit on; - AutoCommit 끄기 set autocommit off;
sqlPlus에서 백스페이스를 누르면 문자가 지워지는 게 아닌 ^H가 나오며 원하는 작동이 되지 않는다. 1. 설정이 유지되는 방법 그런 경우에 사용자 홈 디렉토리로 이동하여 .bashrc or .bash_profile 에 아래의 커맨드를 추가한다. (^H는 키보드에 있는 6 특수문자가 아닌, sqlplus에서 백스페이스 입력 시 나타나는 문자를 복사 및 붙여넣기 해야한다.) stty erase ^H 2. 재접속 시, 유지되지 않는 방법 커맨드 창에 아래의 커맨드를 입력한다. host stty erase ^H