Category Archives: Oracle

[oracle] sqldeveloper 에서 오라클 프로시저(procedure) 디버깅하기.

By | 2월 8, 2024

준비 계정 권한 부여 DEBUG CONNECT SESSION DEBUG ANY PROCEDURE sqldeveloper 설정 변경 도구 > 환경설정 > 디버거 > 데이터베이스 디버그 프로토콜 DBMS_DEBUG_JDMP => DBMS_DEBUG 로 변경 DBMS_DEBUG_JDMP 상태에서 문제 없으면 굳이 바꾸지 않아도 됨. 프로시저를 ‘디버그를 위한 컴파일’로 컴파일 해야 함. 디버깅 breakpoint 찍고 디버깅 시작!

오라클 XE 18C (Oracle Database Express Edition) 윈도우용 설치 및 테스트 사례

By | 9월 2, 2021

진짜 한 10년 만에 오라클을 설치해 보는 것 같은데, 많이 바뀌어서 좀 헤멨다. 예전의 10g, 11g 같은 것은 라이센스가 없이는 다운로드를 받을 수 없게 바뀌었고, 그래서 최근 버전인 19c를 설치해 보려고 했는데, 얘는 설치화면 자체가 windows installer 답게 생기지 않은 것 부터 불안불안 하더니 결국 계속 알 수 없는 설치 실패로 포기. 그래서 알아보니 XE… Read More »

DBeaver에서 구버전의 오라클(Oracle 9.2.0.7.0) 접속 후, 좌측 database navigator에서 더블클릭으로 object 조회를 했을 때 ora-01460 오류가 발생하여 해결했던 사례.

By | 7월 26, 2021

검색을 해 보니 이 문제는 오라클 드라이버의 버전이 맞지 않아서 생기는 것이라 한다. 이 경우도 마찬가지로 드라이버가 너무 최신이어서 문제가 되었던 것. 아래와 같은 과정으로 해결이 되었다. (1) 이 훌륭한 분의 블로그 에서 호환 드라이버 버전을 확인. (2) 오라클 사의 웹페이지에서 구버전 드라이버를 찾을 수가 없어서 oracle instant client를 다운로드 받았다. (오라클 웹계정 필요) 정확히… Read More »

오라클(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 »