0

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をローカルシステムにコピーし、それに接続して読み取ると、データを取得できますか?誰かが私が間違っているところに何かヒントを与えることができますか?

4

1 に答える 1

0

それはあなたのCSVファイルへのパスの問題です。通常、HSQLDBは​​パスをデータベースファイルからの相対パスとして扱います。some.csvファイルがデータベースファイルと同じフォルダにある場合は機能するはずです。

;shutdown=trueはテキストテーブルのプロパティファイルに属していないことに注意してください。あなたはそれをURに追加することができます

于 2013-03-07T21:38:01.233 に答える