Category Archives: Oracle

오라클(Oracle) 피벗(pivot) 샘플 (행을 열로, row를 col로)

By | 11월 19, 2016

  select * from ( select “API명”, “응답기관”, “성공건수”, “실패건수”, from ( … 대단한 쿼리.. 중략 … ) ) PIVOT (SUM(“성공건수”) AS 성공, SUM(“실패건수”) AS 실패 FOR “API명” IN (‘계좌등록’ AS “계좌등록”, ‘잔액조회’ AS “잔액조회”, ‘입금이체’ AS “입금이체”))    

로컬 환경에 오라클(oracle database) 설치 후 초기화 작업 하기

By | 6월 2, 2016

※ 오라클 DB 설치 직후 초기화 oracle 관리자 로그인 sqlplus sys as sysdba => 이후 [설치시 비번] 입력  oracle tablespace 생성 create tablespace [테이블스페이스명] datafile ‘C:\oracle\bruce.dbf’ SIZE 300M; oracle user 생성 create user [아이디] identified by [비번] default tablespace [테이블스페이스명] temporary tablespace temp; oracle user에 권한 주기 grant connect, resource, dba TO [아이디]; 생성한 user로 oracle에 접속하기… Read More »

Oracle 에서 테이블(table)을 truncate할 수 없을 때

By | 10월 27, 2015

– 출처 : https://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:399218963817 –   자식 테이블이 존재할 경우에는 테이블을 truncate할 수 없다. 정 하고 싶으면 FK constraint 를 삭제한 후 truncate 하고 다시 FK를 생성하라고 한다. 귀찮으니 그냥 delete를 사용하자~    

[펌글] 상호연관 서브쿼리 (Correlated Subquery)

By | 6월 13, 2014

– 출처 : http://radiocom.kunsan.ac.kr/lecture/oracle/statement_subquery/subquery_correlated.html –   일반적인 서브쿼리는 sub query의 결과를 main query가 이용한다. 그러나 correlated 서브쿼리는 sub query가 main query의 값을 이용하고, 그렇게 구해진 sub query의 값을 다시 main query가 다시 이용하게 된다. • correlated subquery는 한개의 행을 비교할 때마다 결과가 main으로 리턴딘다. • correlated subquery는 한 행을 처리할 때마다 sub로 주고 값을 처리한 후에 그… Read More »

[펌글] 오라클(Oracle)에서 SPID 얻어오는 쿼리

By | 8월 12, 2013

– 출처 : http://www.dbatodba.com/oracle/how-to/how-to-get-the-sid-spid-username-terminal-application-from-oracle-database – SELECT s.sid       ,p.spid       ,substr(s.username, 1, 20) username       ,s.terminal       ,p.program       ,s.paddr   FROM v$session s            ,v$process p  WHERE s.paddr = p.addr    AND s.sid = (SELECT sid FROM v$mystat WHERE rownum = 1);… Read More »

오라클 프로시저 (Oracle Stored Procedure) 호출시 파라미터(인수)의 갯수를 가변적으로 받을 수 있도록 하는 방법

By | 8월 6, 2013

* 개요 공통 업무에 대한 오라클 프로시저를 만드는데, 호출시 인수의 갯수가 다르면 에러가 발생하는 문제가 있었다.(오류메세지 : ORA-06550 … PLS-00306 ‘XXX’ 호출시 인수의 갯수나 유형이 잘못되었습니다.) 공통이라서 인수의 갯수도 많고 종류도 다양한데, 각 업무에서 그 프로시저를 호출할 때는 모든 인수가 필요한 것이 아니라 몇 개의 인수가 필요할 뿐인데도, 호출 부분 코딩에서 모든 인수를 기입해 주어야 하는 것이… Read More »

[ORA-12704] 문자집합이 일치하지 않습니다. 에러에 대하여

By | 7월 30, 2013

말 그대로 select한 컬럼의 문자집합이 일치하지 않기 때문에 발생하는 오류이다. (NVARCHAR2, VARCHAR2 ? 아직 잘 모르겠다…) 대충 검색을 해 보니 해당 컬럼에 TO_CHAR()를 걸어주어 해결한 경우가 많은 것 같다. 나도 일단 그렇게 해결! * 참고     – 오라클 VARCHAR <=> NVARCHAR 의 문제일 경우,        NVARCHAR가 아닌 문자 (ex: 문자열 리터럴 ‘BLABLA~’)… Read More »

[펌글] ORACLE – MAX() KEEP() / MIN() KEEP() – 오라클

By | 7월 29, 2013

– 출처 : http://blog.naver.com/jazz1234k/40121360816 – 먼저 테스트용 데이터를 만들어보겠습니다.    SELECT 1 A, ‘AAB’ B, 2224 C FROM DUAL    UNION ALL    SELECT 1 A, ‘AAB’ B, 2224 C FROM DUAL    UNION ALL    SELECT 1 A, ‘AAC’ B, 2224 C FROM DUAL    UNION ALL    SELECT 1 A, ‘AAD’ B, 2224 C FROM DUAL    UNION ALL    SELECT 1… Read More »

오라클(Oracle) 캐릭터셋(charset) 변환 함수 convert 샘플코드

By | 4월 1, 2013

* 현재 사용할 수 있는 캐릭터셋(characterset) 조회 쿼리   SELECT *     FROM v$nls_valid_values    WHERE parameter = ‘CHARACTERSET’ * 특정 문자열의 캐릭터셋을 변환하여 byte length를 조회하는 쿼리   select lengthb(convert(‘가나다’, ‘KO16KSC5601’)) from dual;    select lengthb(convert(‘野良猫ねこ’, ‘KO16MSWIN949’)) from dual;    select lengthb(convert(‘禽流可传人’, ‘UTF8’)) from dual;

[펌글] 오라클 페이징

By | 2월 15, 2013

– 출처 : http://dbclose.tistory.com/75 – 오라클은 MySql 에서 지원하는 order by LIMIT 를 지원하지 않아 페이징 처리 속도가 느리다.알려진 오라클 페이징 기법을 테스트 하여 속도를 비교해 보자SAMPLE 테이블에 100만건의 데이트를 입력 후 10개씩 보여지는 마지막 페이지를 조회정렬 조건은 PRIMARY KEY DESC 정렬1. 페이지 수를 계산하여 셀렉트 SELECT B.* FROM ( SELECT  CEIL(ROWNUM/10) PAGE–, COUNT(*) OVER() AS TOTAL_COUNT,… Read More »

[펌글] 오라클 LOCK 확인 및 session kill 방법

By | 11월 22, 2012

– 출처 : 오라클 LOCK 확인 및 session kill 방법 –  테이블에 컬럼을 추가하려 하니 LOCK 이 걸려 추가가 되지 않았다.LOCK정보를 확인 후 session을 kill 해주자.=========================================================================================출처 : 네이버 지식인http://kin.naver.com/detail/detail.php? ··· aaad6fja=========================================================================================lock확인만 하려면select *from v$locked_objectwhere oracle_username = ‘oracle유저명’이러면 lock확인은 됩니다..lock후 kill 시키려면 위의 query가지고는 kill시킬수가 없어여..kill시키고자 하는 시리얼 번호를 알아야 하거든여..select a.session_id as SESSION_ID,b.serial_no as SERIAL_NO,a.os_user_name as… Read More »

간단하게 테이블 백업하기 (백업 테이블 생성)

By | 11월 18, 2011

* 수정하기에 부담없는 개발DB서버나, 로컬에서 DB를 돌릴 때 테이블의 데이터를 백업하는 방법으로,    제약조건등은 복사되지 않고 칼럼형식과 데이터는 그대로 복사된 새 테이블을 만드는 방법이다.      CREATE TABLE AAA_20111118      AS SELECT * FROM AAA