0

SQLステートメント/文字列を構築して実行するJavaアプリケーションがあります。Eclipse からアプリケーションを実行すると、すべて正常に動作します。

しかし、デプロイ済み/バイナリ アプリケーション (バイナリから .sql リソースが読み取られる) を実行すると、次のエラーが発生します。

Exception in thread "main" java.lang.RuntimeException: Error executing sql:
..
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near the keyword 'IF'.

Eclipse から実行するとき、およびデプロイされたアプリケーションを実行するときに、SQL 文字列をファイルに書き込もうとしました。2 つのファイルは、次の小さな違いを除けばほとんど同じです。

1) 作業文字列は 'go' で始まります

2) 作業文字列には IF の前に「go」があります

ソース バージョンにこれらのタグがあり、ビルド バージョンにはない理由はありますか? gradle でビルドし、コンパイラで UTF-8 を使用するように設定します。

[project.compileJava, project.compileTestJava]*.options*.encoding = 'UTF-8'

これは、jar ファイルからファイルを読み取る方法です。

  InputStream inputStream = jarFile.getInputStream(entry);
  StringWriter writer = new StringWriter();
  IOUtils.copy(inputStream, writer, "UTF-8");
  String string = writer.toString();
4

1 に答える 1

1

これgoは SQL コマンドではなく、Eclipse のコマンドです。クエリ バッチを分離するために使用されます。

SQL でクエリを実行するには、goコマンドを削除するか (可能であれば結果を変更せずに)、コマンドでファイルを分割してgo一度に 1 つのバッチを実行します。

于 2012-12-16T21:18:52.200 に答える