* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
|
Windows, LINUX, UNIX, MacOS |
|
|
10.1, 10.2, 11.0, 11.2 |
|
|
|
|
|
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를 사용하는 방법
감사합니다.