본문 바로가기

[Oracle Database] 임시테이블 사용 오라클에서 MS_SQL에서 처럼 임시 테이블 사용하는 법. 1. 임시 테이블생성 SQL> create global temporary table temp_tab (col1 number, col2 char(15)) on commit delete rows ; 2. 임시 테이블에 인덱스 만들기 SQL> create index temp_tab_n1 on temp_tab(col1); 3. 임시 테이블에 데이터 인서트 SQL> insert into temp_tab values ( 1 , 'ABC') ; ★ 주의 : Insert/Update 했다고 Commit 하시면 안됩니다. 4. 임시 테이블에서 데이터 가져오기 SQL> select * from temp_tab ; 더보기
[SQL] 테이블 삭제시 제약 조건제거 테이블을 삭제 할때 기본적으로 DROP TABLE 테이블명이와 같이 하면 되지만, 종속된 제약 조건이 있을 경우, 삭제가 안될 수 있다.그래서 넣어주는 옵션이. CASCADE CONSTRAINTS이다. DROP TABLE 테이블명 [CASCADE CONSTRAINTS] ;이과 같이 하면, 종속된 제약 조건이 삭제된다. 더보기
[Oracle Database] NVL함수 사용 중 유의점 오라클에 대상의 값이 존재하지 않을 경우 다른 값으로 치환해 주는 함수가 있다. NVL 함수인데...얼마전 우연히 이 함수를 사용하면서 난관에 봉착한 적이 있었다. select NVL(대상컬럼, 0) into 받을 변수 from 테이블 where 조건 = 전달 받은 조건; 이 구문을 사용하면서 기대했던 값은. 대상 컬럼의 값이 존재하지 않는다면 변수에 값이 0이 들어가길 희망했다. 하지만 변수에 값이 세팅되지 않고 예외상황이 발생했고, 한참을 끙끙거렸더랬다. 이유는 간단했다. 이미 이 글을 보는 누군가는 저 구문에서 한가지가 빠져 있다는 것을 눈치챈 분들도 있을 것이다. 위의 구문을 실행했들때, 조건에 맞는게 없다면 NVL에서 대상을 변경 시키지 못한다.해서 NVL(MAX(컬럼명)), 0) 혹은 NVL(.. 더보기
[Oracle Database] 정렬시 변환 방법. (Order by Cast) order by를 사용할 때 기본적으로. select * from 테이블 명 where 조건절 order by 컬럼명;이와 같은 방식으로 쿼리를 주로 사용하게 된다. 이렇게 사용하게 되면 컬럼의 값으로 줄을 선 결과를 얻게 되는데. 때때로 이 해당 컬럼명의 값이 숫자임에도 불구하고 문자열로 들어가 있는경우가 있다. 즉 1 이 아니라 "1"이 들어가 있다는 것인데. 이 경우는 문자열을 숫자로 변환해서 불러오면 된다. select * from 테이블 명 where 조건절 order by cast(컬럼명 as 변환 형식) 이렇게 해줄 수 있다.예를 들면. select * from 테이블 명 where 조건절 order by cast(컬럼명 as number) 라고 하면 number 형식으로 변환되어 정렬이 된다. 더보기
[SQL] select쿼리 사용시 유용한 like구문 사용법 select 필드1 from 테이블 where 필드2 like '단어%' 라고 실행을 하면 앞자리에 단어가 포함된 값을 찾아 온다. example1 쿼리 - select 유저이름, 전화번호 from 유저정보테이블 where 유저이름 like '홍%' 결과 홍길동 010-xxx-xxxx 홍아무개 010-xxx-xxxx example2 쿼리 - select 유저이름, 전화번호 from 유저정보테이블 where 유저이름 like '%길%' 결과 홍길동 010-xxx-xxxx 김길동 010-xxx-xxxx 다음과 같은 결과를 얻을 수 있다. 더보기