Category Archives: Database

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

By | 2월 8, 2024

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

mariadb 쿼리 수행시 “Illegal mix of collations” 오류 케이스

By | 9월 4, 2021

평범한 select query 였는데, join 조건에서 오류가 발생했었다. SQL Error [1267] [HY000]: (conn=2246) Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '=' 두 테이블의 charset 같은 게 상이해서 그런가 싶긴 했는데.. 검색을 통해 아래와 같은 방법으로 해결했다. 수정 전 and a.COL1 = b.COL2 수정 후 and a.COL1 = binary b.COL2 (binary를 좌변, 우변 어느쪽에… Read More »

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

By | 9월 2, 2021

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

[MySQL/MariaDB] 프로시저(procedure) 내의 select into 절에서 아무리 select 해도 결과값이 변수에 바인딩 되지 않는 경우(null)

By | 8월 16, 2021

체크포인트 프로시저의 I/O 파라미터 명이 칼럼명과 같지 않은가? 프로시저 내부에서 선언한 변수명이 칼럼명과 같지 않은가? 이것때문에 대체 시간을 얼마나 소비한거야…ㅠㅠ..

[MySQL/MariaDB] 동일한 데이터가 없을 경우는 INSERT, 있을 경우에는 UPDATE (ON DUPLICATE KEY – 오라클의 MERGE INTO 같은)

By | 8월 16, 2021

Oracle의 MERGE INTO 문의 경우 동일 데이터에 대한 판단 기준을 개발자가 쿼리에 명시하는 데 반해, MySQL 계열에서는 조건을 따로 받지 않고 Unique Index를 사용하는 것 같다. (추측임) INSERT INTO tb_sample ( col1 , col2 , col3 ) VALUES ( 'AAA' , 'BBB' , 'CCC' ) ON DUPLICATE KEY UPDATE col2 = 'XXX', col3 = 'YYY'… 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 »

mariadb(아마 mysql도)의 varchar(길이) 에 대하여 잘못 알고 있었던 것 (글자 length, byte length)

By | 7월 16, 2021

오라클 하던 생각으로 막연히 varchar(길이) 안의 길이가 바이트를 나타낸다고 생각하고 있었는데, 오늘 실험 결과 글자(character)단위 길이인 것을 확인했다. mariadb 10 (utf-8) 의 varchar(10)에 한글 10자를 넣어 보니 정상적으로 들어갔다. LENGTH(입력값) = 30, CHAR_LENGTH(입력값) = 10 의 결과가 나왔다.

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

By | 11월 19, 2016

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

MariaDB를 외부에서 접속시 Can't connect to MySQL server on '도메인' (10061) 에러가 발생할 때

By | 11월 13, 2016

– 출처: https://mariadb.com/kb/en/mariadb/configuring-mariadb-for-remote-client-access/ –   패스워드가 맞지 않는 등 여러 경우가 있을 수 있겠지만,  내 경우에는 root 유저에 대하여 모든 호스트에서의 접근을 허용하지 않고 있기 때문이었다. 다음과 같이 해결하였음.   (1) root 유저 로그인 mysql –user=root –password=패스워드   (2) 모든 클라이언트 호스트에 대하여 접근 허용 (아래 % 가 모든 것을 허용한다는 의미) GRANT ALL PRIVILEGES ON… Read More »

로컬 환경에 오라클(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 »

mariadb 에 클라이언트 툴(HeidiSQL)로 접속했는데 아이피 거부를 당하는 경우

By | 4월 24, 2016

* 기본적으로 mariadb 는 원격접속을 허용하지 않는다고 한다. (^^ )   그래서 아래와 같은 방법으로 해결을…   (1) mariadb console 접속 mysql –user=root –password=패스워드   (2) 외부 접속 허용 작업 (mariadb 프롬프트에서)   grant all privileges on *.* to root@’클라이언트IP’ identified by ‘패스워드’ with grant option; flush privileges;