Category Archives: Database

토드에서 SQL을 실행할 때 사용자 파라미터를 받아서 실행하는 방법

By | 11월 24, 2009

※ 다음과 같이 [콜론이 붙은 문자열]을 사용하면 토드에서는 파라미터 입력부분으로 자동 인식하여 입력창을 띄운다.     SELECT * FROM orderclm WHERE ordclm_no = :num * 그러나 위와 같이 해도 파라미터 입력창이 뜨지 않는다면 설정을 체크해 보자.    View > Toad Options > Execute/Compile > Prompt for substitution variables 항목이 체크되어 있어야 함.

[링크] /*+ BYPASS_UJVC */ and updatable views

By | 11월 17, 2009

  http://blog.naver.com/orapybubu/40048824725 * 내가 이해하고 있는 선에서 요약하자면… 1. 기본적으로 view는 update가 가능하다. 2. table을 join 해서 view를 만들어 update를 할 때, 오라클은 다음의 조건을 만족하는 것을 요구한다.    (1) view 내에서 한 번에 한 개의 테이블만 update 가능하다.    (2) update의 대상이 되는 테이블의 PK나 UK는 반드시 select 되어야 한다.         => update 대상 테이블의 ROW는 유니크해야한다.(select된 PK, UK가… Read More »

[펌글][Oracle] %TYPE 데이터형 (컬럼 데이터 타입)

By | 11월 9, 2009

%TYPE 데이터형 ⊙ %TYPE 데이터형은 기술한 데이터베이스 테이블의 컬럼 데이터 타입을 모를 경우 사용할 수 있고, ⊙ 또. 코딩이후 데이터베이스 컬럼의 데이터 타입이 변경될 경우 다시 수정할 필요가 없습니다. ⊙ 이미 선언된 다른 변수나 데이터베이스 컬럼의 데이터 타입을 이용하여 선언합니다. ⊙  데이터 베이스 테이블과 컬럼 그리고 이미 선언한 변수명이 %TYPE앞에 올수 있습니다. %TYPE 속성을 이용하여… Read More »

[펌글] 오라클에서 빈문자 인식 문제 ( '' 를 NULL 로 인식)

By | 10월 22, 2009

[출처] 오라클에서는 ”(공백이 들어간 ‘ ‘이 아닌)을 null로 인식 한다.|작성자 까만머루 자바와 같은 프로그램언어와는 다르게 오라클은 빈문자열을 인정하지 않고 null 로 인식합니다. 그러나 ” 사이에 공백이 한 칸 있다면,즉 ‘ ‘ 이라면 이것은 길이가 1인 문자열로 인식합니다. 이러한 이유로 프로그램과 데이타베이스 사이에 혼란이 일어나는 경우가 있습니다. 즉 자바로 짠 프로그램에서는 입력시 분명 빈문자열을 입력했는데 칼럼에는… Read More »

[펌글] Oracle Instant Client 설치방법 (오라클 클라이언트 대용 – 토드 접속)

By | 8월 24, 2009

[출처] 간단한 오라클 클라이언트(instant client) 설치방법[windows]|작성자 바로가기       일단 아래 사이트에 들어가서 instantclient-basic 을 다운받는다.   http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html     1. 먼저 Instant Client Basic을 적당한 디렉토리에 압축 푼다.   ex) C:\oracle\instanceclient     2. tnsnames.ora 파일을 적당한 곳에 위치 시킨다.   ex) C:\oracle\network     3. Instant Client를 복사한 디렉토리를 Path 환경변수에 추가한다.… Read More »

Ibatis로 오라클의 Date 타입을 select 했을 때 시간 부분이 잘리는 현상

By | 6월 11, 2009

Ibatis로 오라클의 Date 타입 칼럼을 select 하여 java에서 써먹으려고 했을 때, 날짜는 다 나오는데 시간 부분이 00:00 으로 초기화되어 버리는 현상이 있었다. 원인은, select 할 때 resultMap 으로서 HashMap을 사용하는데, result 의 타입을 정확하게 지정해 주지 않았기 때문이었다. 아마 Date로 타입이 지정된 model 클래스의 변수에 담았다면 이런 일이 없었으리라. 그래서 이것저것 시도해 본 끝에 다음과 같이… Read More »

[펌글] [ORACLE] RANK, ROW_NUMBER, DENSE_RANK

By | 5월 11, 2009

– 출처 : http://planmaster.tistory.com/150 – 이 세개의 함수는 오라클에서 그룹으로 묶고, 그것에 대한 순위를 정하는 함수이다. SELECT ROW_NUMBER() OVER(PARTITION BY [그룹핑할 컬럼] ORDER BY [정렬할 컬럼])     , RANK() OVER(PARTITION BY [그룹핑할 컬럼]  ORDER BY [정렬할 컬럼])     , DENSE_RANK() OVER(PARTITION BY [그룹핑할 컬럼] ORDER BY [정렬할 컬럼]) FROM TABLE_NAME; 기본입력된 데이타가 5명의 학생에… Read More »

[링크] 계층구조의 조회 (Hierachical Queries) – START WITH, CONNECT BY

By | 5월 8, 2009

(예제) 해당 카테고리의 하위 카테고리들을 모두 가져오는데, 필터링 조건이 있는 경우           – 주의 : WHERE절이 CONNECT BY 절보다 위에 있어야 필터링 조건이 적용된다.       SELECT  DP_CATEGORY_ID         FROM  TB_DP_CATEGORY      WHERE USE_YN_CD = ‘DP022001’                         AND DISPLAY_KIND_CD = ‘DP015003’  … Read More »

[펌글] ORA-01861: 리터럴이 형식 문자열과 일치하지 않음 오류..

By | 4월 30, 2009

– 출처 : http://blog.daum.net/3210559/16791530 – ORA-01861: 리터럴이 형식 문자열과 일치하지 않음 ; nested exception is java.sql.SQLException: ORA-01861: 리터럴이 형식 문자열과 일치하지 않음 오라클에서 to_date 시 date형으로 변환하려는 다른 문자열 등이 date로 변환할 수 없는 형식일 경우 떨어지는 Exception 이다.

[펌글-미완성] 오라클 PL/SQL 변수 선언 (변수형에 대하여)

By | 4월 20, 2009

– 출처 : http://academic.naver.com/view.nhn?doc_id=7779825 – █ 변수 선언 ● PL/SQL 변수 선언 1) DECLARE 부분에 변수를 정의한다. 2) ‘변수명 변수타입’의 형식으로 선언하며, 변수명에는 보통 v_를 붙여준다. 3) 대입연산자 ‘:=’나 키워드 DEFAULT로 초기화하며, NOT NULL 키워드가 붙을 수 있다. 4) 문자열은 작은따옴표(‘)를 사용한다. 5) 변수의 값을 상수(CONSTANT)로 설정하며, 반드시 값은 초기화 해야 한다. 6) BOOLEAN 타입은 TRUE,… Read More »

[펌글] [Oracle] MERGE – 조건에 따라 INSERT,UPDATE 가 가능

By | 4월 16, 2009

* 링크 [ORACLE] MERGE INTO를 활용해 없는 데이터는 INSERT, 있는 데이터는 UPDATE를 해봅시다. * 펌글 출처 : http://oracleclub.com/lectureview.action MERGE  – 한번에 조건에 따라 INSERT,UPDATE 가 가능합니다.  – 해당 ROW가 있으면 UPDATE, 없으면 INSERT 문장이 실행 됩니다.      ◈syntax MERGE INTO target_table_name       USING (table|view|subquery) ON (join condition) WHEN MATCHED THEN    … Read More »

[책펌] [Oracle] 숫자함수 (ROUND, TRUNC, MOD, CEIL, FLOOR)

By | 4월 10, 2009

ROUND : 지정한 자리에서 반올림                                  –  ROUND(123.17, 1)  =>  123.2 TRUNC : 지정한 자리 이하에서 절삭                              –  TRUNC(123.17, 1)  =>  123.1 MOD    : m 을 n 으로 나눈 나머지                                 –  MOD(12, 10)         =>   2 CEIL    : 지정한 값보다 큰 수 중에서 가장 작은 정수         –  CEIL(123.17)        => 124 FLOOR : 지정한 값보다 작은 수 중에서 가장 큰 정수         –  FLOOR(123.17)    … Read More »