JDBC에서 SEQUENCE OF 타입의 컬럼 값을 조회하는 방법 문의

by 새옹지마 posted Dec 11, 2025


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Windows, LINUX, UNIX, MacOS
CUBRID Ver.
10.1, 10.2, 11.0, 11.2
CUBRID TOOL Ver.
 
응용 환경(API)
JDBC


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
 

시스템 카탈로그 db_partition의 컬럼 partition_values의 데이터 타입이 SEQUENCE OF인데,

이 데이터타입을 JDBC  ResultSet 에서 조회하는 방법을 알고 싶습니다.

 

아래와 같은 테이블을 생성한 후 db_partition 딕셔너리를 조회했습니다.

CREATE TABLE sh2.tb_partition_range (

    host_year INT,

    nation CHAR(3),

    gold INT,

    silver INT,

    bronze INT

)

PARTITION BY RANGE (host_year) (

    PARTITION before_2000 VALUES LESS THAN (2000),

    PARTITION before_2008 VALUES LESS THAN (2008),

    PARTITION before_2010 VALUES LESS THAN (2010),

    PARTITION before_2020 VALUES LESS THAN (2020),

    PARTITION others VALUES LESS than maxvalue

);

 

getString("partition_values")를 실행하면 오류가 발생합니다.

cubrid.jdbc.driver.CUBRIDException: Type conversion error[CAS INFO-####,4,31],[SESSION-8],[URL-jdbc:cubrid:####].

at cubrid.jdbc.jci.UGetTypeConvertedValue.getString(UGetTypeConvertedValue.java:268)

at cubrid.jdbc.jci.UStatement.getString(UStatement.java:1579)

at cubrid.jdbc.driver.CUBRIDResultSet.getString(CUBRIDResultSet.java:332)

at cubrid.jdbc.driver.CUBRIDResultSet.getString(CUBRIDResultSet.java:584)

 

getObject("partition_values")도 TypeConversion 에러가 납니다.

데이터 타입이 SEQUENCE OF인데, JDBC 드라이버에서 getTimestamp 메소드를 를 호출하는 것도 미스터리네요.

파티션 키 컬럼이 INT 타입이고 테이블에는 INT와 CHAR 타입 컬럼밖에 없습니다.

cubrid.jdbc.driver.CUBRIDException: Type conversion error[CAS INFO-####,4,31],[SESSION-7],[URL-jdbc:cubrid:####].

at cubrid.jdbc.jci.UGetTypeConvertedValue.getTimestamp(UGetTypeConvertedValue.java:295)

at cubrid.jdbc.jci.UStatement.getTimestamp(UStatement.java:1607)

at cubrid.jdbc.driver.CUBRIDResultSet.getTimestamp(CUBRIDResultSet.java:506)

at cubrid.jdbc.driver.CUBRIDResultSet.getTimestamp(CUBRIDResultSet.java:632)

at iFlow.lib.database.MyResultSet.getObject(MyResultSet.java:300)

 

cast(partition_values as varchar)도 사용할 수 없군요. 

Casting db_partition.partition_values to type varchar is not supported.

 

어떻게 해야 할까요.

두 가지 방법을 알려 주시면 좋겠습니다.

 1. SQL에서 VARCHAR로 변환해 추출하는 방법

 2. JDBC에서 getXXX를 사용하는 방법

 

감사합니다.

 


Articles

1 2 3 4 5 6 7 8 9 10