2011-12-05 8 views
0

MySQl WorkbenchからダンプされたSQLファイルをインポートしましたが、Eclipseで実行しようとするとこのエラーメッセージが表示され続けます。EclipseへのSQLダンプのインポート

SQLException:SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックして、正しい構文が 'SET @OLD_CHARACTER_SET_RESULTS = @@ CHARACTER_SET_RESULTS /'の近くで使用できるようにしてください。 /!40101 SET @OLD_COL 'on line 8

しかし、同じ情報をMySQLにコピーすると、スキーマが作成され、すべて正常に動作します。私は間違って何をしていますか?ここで

は私のJavaコードです: http://pastebin.com/B1RVMYUd

そして、あなたはここでそれを必要とする場合のダンプファイルです: http://pastebin.com/RWpG0BEX

答えて

0

こんにちは、多分もっと自分のMySQL文でクエリでダンプをアップロードするには

0

あなたが実行しますダンプの内容全体を単一のSQL文として処理します。区切り文字として;を使用してファイルの内容(sql文字列)を分割し、それぞれの文を別々に実行してください。

0

(さておき、それはリソースが常に解放されていることを確認するために、finally句でstatement.close/conn.closeへのコールを置くようにするとよいでしょう。として)私は初心者ですので、私のコメントかもしれません

1)executeQuery(sql)メソッドを使用することはできません。このメソッドを使用することはできません。作成する。他のオプションの1つを使用してください。私の実験では、私が使用:

1)コメントを取り除く:

sqlDumpArray = sqlDump.split(";"); 

for (int i = 0; i < sqlDumpArray.length; i++) { 
    System.out.println("\nsqlDumpArray[" + i + "] is: " + sqlDumpArray[i]); // To see what's in the array. 
    } 

    for (int j = 1; j < sqlDumpArray.length -1; j++) { // Ugly hack because sqlDumpArray[0] and sqlDumpArray.length-1 are problematic in this alpha version of code. 
     try { 
      Statement statement = conn.createStatement(); 
      statement.addBatch(sqlDumpArray[j]);    
      statement.executeBatch(); // Maybe could move this out of the for-loop. 
     } 

SQLファイルについて。 2)ファイルの最初の文字としてセミコロン(1行目、1列目)を入力します。

私はそれを実行して動作します。完全なコードが必要な場合はお知らせください。投稿します。

乾杯、 クリス

関連する問題