Background Image

FORUM

조회 수 247 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


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

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를 사용하는 방법

 

감사합니다.

 

  • ?
    hwanyseo 2025.12.16 08:56
    안녕하세요 큐브리를 이용해 주셔서 감사합니다.

    db_partition에서 partition_values의 row data를 사용하려는 것으로 보입니다.
    1. SQL에서 LIST를 VARCHAR TYPE으로 변환 하는 함수는 없는 것으로 알고 있습니다.
    2. 그러므로 List에 경우 아래 코드와 같이 getObject를 받으셔서 object type에 따라 result값을 변환하여 사용하시면 되며,
    정상적으로 데이터를 받을 수 있을 것 같습니다.
    아래와 같은 코드가 의도가 아니라면 문제의 java코드를 전달해 주시면 추가로 분석하여 드리도록 하겠습니다.


    ==========================================================
    ResultSet rs = null;
    Statement stmt = null;
    String sql = "select * from db_partition where class_name = 'tb_partition_range' and owner_name = 'sh2'";
    System.out.println(sql);
    try {
    stmt = conn.createStatement();
    boolean ret = stmt.execute(sql);

    if (ret) {
    rs = stmt.getResultSet();
    if (rs != null) {
    while (rs.next()) {
    Object obj = rs.getObject("partition_values");
    if (obj != null) {
    System.out.println("obj : " + obj.getClass().getSimpleName());
    if (obj instanceof Integer[]) {
    Integer[] arrayResult = (Integer[]) obj;

    if (arrayResult == null || arrayResult.length == 0) {
    System.out.println("Array is empty or null.");
    } else {
    for (int i = 0; i < arrayResult.length; i++) {
    System.out.println("result" + "[" + i + "]" + arrayResult[i]);
    String stringRet = String.valueOf(arrayResult[i]);
    System.out.println("stringRet : " + stringRet);
    }
    }
    }

    }
    }
    }
    }

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 22 admin 2024.04.23 147262
4258 restoredb 이후 오류발생 3 file PCH 2026.01.27 38
4257 cubrid 11.4에서 Stored Function 생성 이후 함수 내부에서 다른 함수 호출시 위치에 따라 "Stored procedure execute error" 오류가 출력 되는 문제 1 두목원슝 2026.01.27 14
4256 Django + python환경에서 orm 지원 문의 1 스에트치 2026.01.22 53
4255 odbc / jdbc 환경에서 현재 세션의 isolation level 확인방법 4 jhlee 2026.01.21 47
4254 큐브리드 사용자(스키마) 계정에 대한 비밀번호 정책을 추가 1 PCH 2026.01.20 43
4253 브로커 이중화 관련 문의드립니다. 4 file PCH 2026.01.14 62
4252 HA 구성에 독립된 DB 추가하는 방법 문의드립니다. 1 깐수 2026.01.08 71
4251 CUBRID DB 9에서 11버전으로 업그레이드 연계 JDBC 변경 문의 1 MiniMaster 2025.12.23 128
4250 큐브리드 설치 시 로그 위치 변경 문의 1 강인함 2025.12.22 118
4249 unloaddb 후 loaddb 시 오류 5 file PCH 2025.12.15 190
» JDBC에서 SEQUENCE OF 타입의 컬럼 값을 조회하는 방법 문의 1 새옹지마 2025.12.11 247
4247 DB 운영중 LOCK 관련 이슈가 있어 문의 드립니다. 4 file 용원아빠 2025.12.11 261
4246 spring boot 3.5.8 + cubrid 11.4 JPA설정 문의 2 뵤라 2025.12.10 260
4245 slow.log 파일에서 'server execution statistics' 출력 조건이 궁금합니다. 5 file ogu 2025.12.02 363
4244 Cubrid 11.4의 컬럼명과 도움말의 컬럼명이 다릅니다. 1 엘L 2025.11.28 371
4243 CUBRIDException: The argument is invalid. 3 큐피 2025.11.17 661
4242 CUBRIDException: POSIX external storage error: /ces_029... Permission denied 4 큐피 2025.11.10 490
4241 캐릭터셋 변경 질문드립니다. 1 file 엘L 2025.10.29 417
4240 특정 사용자 ID 에 대한 에러 문의 1 헤이선 2025.10.28 582
4239 [긴급] DB 조회 문의 1 헤이선 2025.10.23 703
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 213 Next
/ 213

Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2148 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales