使用 hsqldb 和 java 连接到远程 CSV

Posted

技术标签:

【中文标题】使用 hsqldb 和 java 连接到远程 CSV【英文标题】:Connect to remote CSV using hsqldb and java 【发布时间】:2013-03-06 08:26:16 【问题描述】:

我想使用 hsqldb 连接到远程 CSV 并将其转换为 TEXT 表。谁能指导我需要遵循的步骤?我的代码:

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 复制到本地系统,并连接到它并读取它,我可以获取数据吗?任何人都可以提示我哪里出错了!

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于使用 hsqldb 和 java 连接到远程 CSV的主要内容,如果未能解决你的问题,请参考以下文章

如何连接到独立的 HSQLDB

Python 3.7 在 MAC 上连接到 HSQLDB

HSQLDB 无法使用 android 连接到 db 脚本?

将数据库连接到 HSQLDB 服务器

不要连接到 HSQLDB 数据库

同时连接到 HSQLDB - 调用永远不会返回