본문 바로가기

춤추는 프로그래머/Database.

[오라클] REPLACE 함수 # REPLACE(char, searh_str, replace_str) 문자열을 다른문자열로 바꾸는 함수이다. char 문자열에서 search_str 을 찾아 replace_str 로 바꾼다. replace_str 값이 생략되었을때는 searh_str 문자열을 제거한 결과를 돌려준다. SELECT REPLACE('You are so beautiful.', 'so', 'no') REPLACE_STR FROM DUAL REPLACE_STR --------------------- You are no beautiful. 1 row selected SELECT REPLACE('You are so beautiful.', 'so') REPLACE_STR FROM DUAL REPLACE_STR -------------.. 더보기
[오라클] Sequence 1. 시퀀스(Sequence) 정의 : 시퀀스는 기본 키 값을 자동으로 생성하기 위하여 일련번호를 생성하기 위한 객체이다. 예를 들어 웹게시판에 글이 등록되는 순서대로 번호를 하나씩 할당하는 등의 작업에 사용하면 아주 유용하다. 시퀀스 값은 오라클 내부 루틴에 의해 자동으로 번호가 생성된다. 2. 시퀀스 생성 문법) CREATE SEQUENCE sequence [INCREMENT BY n] 더보기
[오라클] 힌트 사용 정리 ◆ 개요 힌트는 SQL 튜닝의 핵심부분으로 일종의 지시구문이다. SQL에 포함되어 쓰여져 Optimizer의 실행 계획을 원하는 대로 바꿀 수 있게 해준다. 오라클 Optimizer라고 해서 항상 최선의 실행 계획을 수립할 수는 없으므로 테이블이나 인덱스의 잘못된 실행 계획을 개발자가 직접 바꿀 수 있도록 도와주는 것이다. 사용자는 특정 SQL 문장에서 어떤 인덱스가 선택도가 높은지에 대해 알고 있는데 이 경우 오라클 서버의 Optimizer에 의존하여 나온 실행 계획보다 훨씬 효율적인 실행 계획을 사용자가 구사할 수 있다. ◆ 사용 힌트를 사용하여 아래와 같은 것들을 할 수 있다. 액세스 경로, 조인 순서, 병렬 및 직렬 처리, Optimizer의 목표(Goal)를 변경 가능하다. ◆ 오라클 힌트 사용.. 더보기
[오라클] FROM절에서 테이블명 기재 순서 AS-IS 소스를 보다가 조건절에 따른 분기의 차이가 테이블 명의 기재 순서라는 것을 보고 궁금해서 찾아보았다. ORDERED힌트와 관련이 있었다. ORDERED 힌트 사용 時 join 순서는 FROM절에 기술된 순서를 따른다. 힌트사용방법에 대해서는 링크를 클릭. 더보기
[오라클] ROWNUM 활용 ROWNUM이란 어떤 테이블 내에 물리적으로 저장되어 있는 컬럼이 아니라 SYSDATE나 USER 등과 같이 모든 SQL에 그대로 삽입해서 사용할 수 있는 가상(Pseudo)의 컬럼이다. SQL이 실행되는 과정에서 발생하는 일련번호이므로 각 SQL수행시마다 같은 로우라 하더라도 서로 다른 ROWNUM을 가질 수 있다. 그러므로 이러한 내부적인 값을 조건절에 사용하여 우리가 원하는 만큼만 처리가 수행되도록 할 수 있다. 이 방법 역시 전체를 처리하지 않고 일부만 처리하도록 유도하는 방법이므로 하나의 부분범위처리라고 말할 수 있다. SQL 실행과정의 어느 특정 부분에서 ROWNUM이 결정되어지므로 정확히 알지 못하고 사용하면 우리가 원하지 않는 결과가 추출될 수도 있다. ROWNUM이 결정되어지는 과정을 그.. 더보기
[오라클] ORA-00937 단일그룹의 그룹함수가 아닙니다. SELECT 절에 그룹함수가 오게 되면 SELECT절의 나머지 컬럼은 GROUP BY 절에 기술되어야 합니다. 즉, SELECT 절에 그룹함수가 오거나, GROUP BY절 이하에 기술된 컬럼이 오면 나머지 컬럼은 SELECT절 뒤에 기술할 수 없습니다. SELECT SCH_CD, COUNT(SCHOLAR_NM) FROM SJH_CONTINUE -> ORA-00937 단일그룹의 그룹함수가 아닙니다. 더보기
해당 위치에 지원되지 않는 SQL92 토큰: 1: 해당 위치에 지원되지 않는 SQL92 토큰: 1: xml에서 ( 대신 { 를 쓰거나 하면 위와 같은 에러가 생긴다. #if($SCHOLAR_CD.equals("0024")) { 더보기