2010-01-26 5 views
1

시나리오는 다음과 같습니다. 사용자가 데이터베이스 테이블 이름을 지정하면 시스템은 지정된 informix 데이터베이스 테이블에 저장된 모든 데이터를 검색하여 표시합니다.Informix 테이블에서 BigSerial 열 데이터 선택

Class.forName("com.informix.jdbc.IfxDriver"); 

Connection conn = DriverManager.getConnection(connUrl) 
Statement stmt = conn.createStatement(); 

ResultSet rs = stmt.executeQuery("select * from an_ifx_table"); 

an_ifx_table은 사용자가 지정한 임의의 테이블 이름입니다. 문제는 BigSerial 데이터 형식으로 정의 된 열이 있다는 것입니다. 그래서 코드는 항상 예외가 발생합니다 :

java.sql.SQLException: bigserial 
    at com.informix.jdbc.IfxSqli.a(IfxSqli.java:3204) 
    at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3518) 
    at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2353) 
    at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2269) 
    at com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1428) 
    at com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1401) 
    at com.informix.jdbc.IfxResultSet.a(IfxResultSet.java:204) 

으로 어떤 테이블 시스템이 사용자에 의해 지정 될 것입니다에서 데이터를 검색하는, 우리가 건너 뛰거나 BIGSERIAL 데이터 형식의 열을 캐스팅 할 수 없습니다.

이 시나리오를 처리하기위한 제안이 있으십니까?

+1

를 사용하여 내 Windows 시스템에서

jdbc:odbc:[ODBC_source_name] 

을 :

sun.jdbc.odbc.JdbcOdbcDriver 

connUrl 등 : 드라이버 사용으로 다음, 인포믹스 ClientSDK를 설치 ODBC 소스를 만들고 OS 및 JDBC 드라이버의 정보. –

답변

1

방금 ​​SERIAL8 열로 테이블을 만들었으며 일부 데이터로 채웠으며 ResultSet에서 모든 데이터를 읽을 수 있습니다.

JDBC 드라이버가 오래되었을 수 있습니까?

JDBC.3.50.JC5.tar에서 JDBC 드라이버를 사용합니다. JDBC-ODBC 브릿지를 사용해 볼 수도 있습니다. 버전을 추가 내가 clientsdk.3.50.TC5.WIN.zip을 사용하고, 리눅스에 내가 clientsdk.3.50.UC5.LINUX.tar

+0

친구에게 감사드립니다! 방금 확인 했어. My Informix JDBC 드라이버는 사용되지 않습니다. 방금 JDBC.3.50.JC5.tar를 다운로드하여 테스트했습니다. 모든 것이 이제는 잘됩니다. – poh

관련 문제