2016-09-13 2 views
0

red-hat 7 서버에 Sybase-IQ 16.0을 빌드합니다.Java 프로그램에서 dbisql 실행

Sybase의 대량로드 데이터에 dbisql을 사용하려고합니다.

그리고 Sybase 서버의 명령에 의해 나는 이미 성공적인 :

dbisql -nogui -c "UID=DBA;PWD=sql;DWN=iqtry;host=172.16.50.137:2643;" -onerror continue READ /EXT_LOAD/Load_Test_Data.SQL

하지만, 프로젝트 요구 사항에서 자바 프로그램에서 다음과 같이 나의 프로그램이 작업을 수행 할 필요가 :

import java.io.*; 
import java.sql.*; 
import java.util.*; 
import java.sql.Connection; 
import java.sql.Date; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
public class Test { 
public static void main(String[] args) throws SQLException { 

String dburl = "dbisql -nogui -c 'UID=DBA;PWD=sql;DWN=iqtry;host=172.16.50.137:2643;' -onerror continue READ /sybase/IQ_LOAD/load_DBA.atest.sql"; 

// Connect to Sybase Database 
Connection con = DriverManager.getConnection(dburl); 
Statement statement = con.createStatement(); 
}} 

을 그리고 내가 할 수있는

Exception in thread "main" java.sql.SQLException: No suitable driver found for

jdbc:sqlanywhere:uid=DBA;pwd=sql;eng=iqtry;database=atest;links=tcpip(host=172.

16.50.137,2643)

at java.sql.DriverManager.getConnection(DriverManager.java:689)

at java.sql.DriverManager.getConnection(DriverManager.java:270)

at Test.main(ConnectIQ.java:30)

m에서 :이 클래스를 실행할 때, 나는 오류 다음있어 Syabse 서버에 컴파일하지만, y 문제, 현재 경로에 클래스 경로를 설정하려고 시도했습니다.

set classpath = ./sybase/IQ-16_0/java/sajdbc4.jar

set classpath = ./sybase/IQ-16_0/java/jconn4.jar

하지만 모두 작동하지 않습니다.

+0

클래스 경로에 올바른 드라이버가 없거나 URL이 잘못되었습니다. 또한 응용 프로그램 실행 방법에 따라 환경 변수'CLASSPATH'가 전혀 사용되지 않을 수도 있습니다 (Java 응용 프로그램이 실행되는 대부분의 경우에 해당). BTW 표시된 코드와 예외는 일치하지 않습니다 (예외가 코드에 표시된 것과 다른 dburl 값을 표시하므로). –

답변

0

dbisql 유틸리티는 명령 줄 유틸리티이므로 Java와 함께 사용하면 안됩니다. 이것은 Bash와 같은 쉘이나 GUI 환경에서 사용하기위한 것입니다.

sajdbc4.jar 파일은 SAP IQ 용 JDBC 드라이버입니다. CLASSPATH에 대해 이미 언급했듯이 JDBC 표준의 DataSource Interface을 구현하는 IQDataSource 클래스를 사용하는 것이 더 좋습니다.

간단한 코드는 다음과 같습니다

IQDataSource iqDataSource = new IQDataSource(); 
iqDataSource.setURL(jdbcUrl); 
iqDataSource.setUser(username); 
iqDataSource.setPassword(password); 

또 다른 힌트 : JDBC 드라이버의 특정 빌드, SAP의 IQ 관계의 각 릴리스를 기억한다. 올바른 플랫폼에 적합한 버전 타겟을 사용하고 있는지 확인하십시오.

희망이 도움이됩니다.

관련 문제