본문 바로가기

JDBC3

JDBC DatabaseMetadata 기반 정보 조회 / 스키마, 테이블, 컬럼, PK, Index / 오라클, MySQL, PostgreSQL, SQL Server, ... Oracle, MySQL, PostgreSQL, SQL Server, Sybase IQ, SAP HANA 등의 DBMS 종류는 우리가 인지하고 있는 것보다 모르는 것이 더 많을 것이다. 이러한 데이터베이스에서 스키마 목록, 테이블 목록, 테이블의 컬럼 목록, 테이블의 Primary Key, 테이블의 인덱스, Foreign Key 등의 데이터를 조회하기 위해서 어떻게 해야 할까?? 가장 먼저 떠오르는 방법은 해당 데이터베이스에 SQL 쿼리를 작성하여 각각의 딕셔너리 테이블(혹은 뷰)을 조회하는 방법일 것이다. SELECT * FROM ALL_TAB_COLUMNS WHERE TABLE_NAME='T1' 이렇게 SQL 쿼리를 기반으로 작성된 코드는 다른 데이터베이스와는 호환이 되지 않으며(데이터베이스마다 조회.. 2020. 6. 15.
MySQL의 캐릭터셋 인코딩 이해하기 Database가 문자와 관련된 데이터 타입이 주를 이루기 때문에 캐릭터셋 인코딩에 대해서는 꼭 짚고 넘어가야한다. 본인도 문제가 발생할 때마다 검색을 통한 해당 문제 해결에 집중하였던 터라, 반성을 하고 이렇게 MySQL 캐릭터셋에 대해서 정리하고자 한다. 문자 집합(Character Set) 혹은 문자 인코딩이란? 문자 집합(character set, charset) 또는 문자셋은 정보를 표현하기 위한 글자들의 집합을 정의한 것으로, 직접적으로 사용되지 않을 수도 있고 한 문자 집합을 여러 문자 인코딩에서 쓸 수도 있다. 특히 집합 안의 문자들에 음수가 아닌 정수들을 배정한 것을 부호화된 문자 집합(coded character set, CCS)이라 한다. 문자 집합은 ASCII와 같이 더 이상의 문자.. 2018. 1. 17.
Oracle JDBC 캐릭터셋 변환 및 이해하기 업무상 JDBC를 다뤄야 할 일이 많아졌다. JDBC는 Oracle OCI 라이브러리에 비하면 사용하기가 상당히 편한 것이 사실이다. 하지만 Char/Varchar/Nchar/Clob/Nclob과 같은 Character 타입에 저장된 한글 데이터를 다루는 과정에서 약간의 우여 곡절이 있어서 그것을 여기에 정리하고자 한다.우선, JDBC를 사용하여 Character 타입의 데이터를 조회 하기 위해서는 ResultSet의 getString, getCharacterStream, getBytes와 같은 API를 사용하여야 한다. JDBC는 자바가 유니코드를 다루기 때문에 Oracle DBMS로 부터 JDBC를 통해서 데이터를 조회하는 과정에서 UTF-8/UTF-16으로 데이터를 변환한다.데이터에 대한 변환 과정.. 2018. 1. 11.