반응형

아카이브 93

ORA-01861: 리터럴이 형식 문자열과 일치하지 않음

DATE 타입의 컬럼을 WHERE 문에서 BETWEEN 으로 검색하려하는데 날짜는 상관없는데 시분초까지 검색하려면 'ORA-01861: 리터럴이 형식 문자열과 일치하지 않음' 이 에러가 떴다. 구글검색결과 타입을 지정해줘야한다는 결론이 났다. 다음과 같이 하면 된다. WHERE SDATE BETWEEN TO_DATE('2008-09-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND TO_DATE('2008-09-08 23:59:59', 'yyyy-mm-dd hh24:mi:ss') 에공..

오라클 STARTUP 단계

STARTUP 단계 1. SHUTDOWN – 인스턴스가 닫힘 파라미터 파일이 있어야 NOMOUNT 단계로 갈 수 있다. 2. NOMOUNT – 인스턴스 시작 파라미터 파일을 읽고, SGA 를 할당하고, 백그라운드 프로세스가 시작되고, ALERT LOG 파일 및 추적파일을 연다. CONTROL FILE 이 있어야 MOUNT 단계로 갈 수 있다. 3. MOUNT – 데이터베이스의 모드를 변경하는 단계 DATAFILE 의 이름 바꾸기, ARCHIVELOG MODE 변경, DB 복구 DATA FILE, REDO LOG FILE 이 정상적으로 있어야 OPEN 단계로 갈 수 있다. 4. OPEN – 데이터베이스가 정상적으로 열린 상태 STARTUP 명령은 SHUTDOWN 단계에서만 사용할 수 있고 NOMOUNT 나..

SPFILE 생성하는 방법

SPFILE 생성 SQL> CREATE SPFILE FROM PFILE; 일반적으로 PFILE 은 initSID.ora 라는 이름으로 되어있고, (SID 는 ORACLE_SID 로 오라클 인스턴스 명이다? ㅡ,.ㅡ;) SPFILE 은 spfileSID.ora 라는 이름으로 되어있다. 이 두가지는 초기화 매개변수로 인스턴스를 시작하기 위해 필요하다. pfile 은 텍스트 편집기에서 수정할 수 있으나 spfile 은 이진파일로 되어있어서 편집기에서는 수정할 수 없다. pfile 은 텍스트 편집기에서 수정후 인스턴스를 재시작해야 한다. spfile 은 현재 세션에서도 수정해서 적용할 수 있다.(물론 재시작후 적용되는 것도 있다.ㅡ.ㅡ) 반대로 SPFILE 에서 PFILE을 생성할 수 있다. CREATE PFI..

오라클 서버의 구조

공부하면서 짝대기 거가며 A4 용지에 끄적인걸 찍어서 보여주면 좋겠지만,, 일단은 그냥.. 후후^^; 오라클 서버는 일단 인스턴스와 데이터베이스로 구성되어지고 다시 인스턴스는 백그라운드 프로세스와 메모리 영역으로 나누어진다. 백그라운드 프로세스는 5개의 주요 프로세스와 기타프로세스로가 있고 메모리에는 SGA 와 PGA 가 있다. 데이터베이스는 데이터파일과 컨트롤파일, 리두로그 파일로 구성된다. 그래서 아래처럼 정리.. ^^; ORACLE SERVER 1. Instance (1) BackGround Porcess - PMON : 프로세스 모니터, 트랜잭션 롤백 - SMON : 시스템 모니터, 인스턴스 복구 - DBWR : 디비 라이터(쓰기) 체크포인트가 일어날 시, 더티버퍼 수가 한계값을 넘을시, 사용가능..

인덱스

인덱스가 사용되지 않는 경우 - 인덱스 컬럼은 비교되기 전에 변형이 일어나면 인덱스를 사용할 수 없다. 인덱스는 가공되기 전에 값으로 생성되어 있지 가공된 후의 값을 가지고 있지않다. - 부정형으로 조건을 기술한 경우에도 인덱스를 사용하지 않는다. - 인덱스 컬럼이 null 로 비교되면 사용할 수 없다. 결합인덱스 - 첫번째 컬럼이 검색되지 않으면 소용없다. - 첫번째 컬럼이 '='으로 검색되어야 한다. between이나 like 로 검색되면 효율이 떨어진다. 개발시 인덱스 추출 요령 1. 반복 수행되는 액세스 형태를 찾는다. - 기본키, 외부키, 서브쿼리시 연결고리가 되는 컬럼 2. 분포도가 아주 양호한 컬럼들을 발췌하여 액세스 유형을 조사한다. 3. 자주 넓은 범위의 조건이 부여되는 경우를 찾는다. ..

문자형 데이터에서 엔터값 찾기

SELECT CHARINDEX(char(13), Title), Title FROM EnterTest 이렇게 하면 엔터가 들어간 부분에 인덱스를 구할 수 있다. 그래서 어떤 글을 썼는데, 처음 엔터까지 문장을 끊고 싶으면 substring 을 써서 처리할 수 있다. - substring(0, charindex(char(13), Title) ) 뭐 이런식으로 하면 되나?? 이건 쿼리로 한 건데 물론, 프로그램 소스에서도 처리할 수 있다. 알아서들 해보삼~ 후후후^^

반응형