2013-03-06 69 views
-1

我想使用hsqldb连接到远程CSV并将其转换为TEXT表。任何人都可以引导我需要遵循的步骤吗?我的代码:使用hsqldb和java连接到远程CSV

String url1 = "jdbc:hsqldb:file:197.161.16.16//data10//projects//2//hsqldb"; 
long currMilli = System.currentTimeMillis(); 
String tableName = "MRx" + currMilli; 
final StringBuilder createTable = new StringBuilder(); 
final StringBuilder setDatabase = new StringBuilder(); 
setDatabase.append("SET DATABASE SQL SYNTAX ORA TRUE "); 
createTable.append("CREATE TEXT TABLE" + " " + tableName); 
createTable.append(columnNames); 
final StringBuilder linkTable = new StringBuilder(); 
linkTable.append("SET TABLE" + " " + tableName + " SOURCE "); 
linkTable.append("\"/" + "some.csv"); 
linkTable.append(";ignore_first=true;all_quoted=true;shutdown=true\""); 
try { 
    conn = DriverManager.getConnection(url1, "sa", ""); 
    stm = conn.createStatement(); 
    stm.execute(createTable.toString()); 
    stm.execute(linkTable.toString()); 
    countResult = stm.executeQuery("Select count(*) from " + tableName); 
    int totalCount = 0; 
    while (countResult.next()) { 
     totalCount = countResult.getInt(1); 
    } 
....................... // more code ............... 

即使CSV有数据,该select语句返回什么。而如果我将同一个CSV复制到本地系统,并连接到它并阅读它,我可以获取数据?任何人都可以给我任何暗示我错了!

回答

0

这是您的CSV文件的路径问题。通常,HSQLDB将路径视为相对于数据库文件。如果some.csv文件与数据库文件位于同一文件夹中,它应该可以工作。

注意;shutdown=true不属于文本表属性文件。您可以将其附加到UR