2017-06-19 7 views
-3

に私が使用している場合MySQLデータベースと直接正常に動作しますが、次のクエリ(そのは実際にはもっと複雑ですが、ちょうどこの目的のために基本的なものを使用)SQLクエリは、MySQLで動作しますが、Java

"DECLARE @x1 FLOAT; SET @x1 = 8; Select @x1" 

を持っていませんそれはこのようなJavaで:

String sqlFormula = "DECLARE @x1 FLOAT; SET @x1 = 8; Select @x1"; 

私は正常に動作しますが、これは私のSQL構文エラーを与えている他の人が行うのと同じ方法で、このクエリを送信します。 javaは別の形式で変数宣言を必要としますか?

エラーがある:それは、行全体を指して、本当に助けにはならない

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE @x1 FLOAT; SET @x1 = 8; Select @x1' at line 1

開始し、文字列に終止符追加:

String sqlFormula = "BEGIN DECLARE @x1 FLOAT; SET @x1 = 8; Select @x1 END"; 

を開始ビットは結構ですが、声明にENDを追加しているようだこれを行うことで。エラーが構文エラーを報告します:

'DECLARE @x1 FLOAT; SET @x1 = 8; Select @x1 END' at line 1

ありがとうございます。

+1

*「私は他の人と同じように」*どうですか? --- *「私にSQL構文エラーを与える」*エラーを表示してください。 – Andreas

+0

タグ付けには注意してください。 mysql <> SQLサーバ。 –

+0

@アンドレアス上記のエラーを表示するために編集しました。 – MXG123

答えて

-1

構文に間違いがないことが判明したので、1つのクエリで複数のステートメントが好きではないということになりました。私はそれらを個別に実装していました。それは理想的ではありませんが、私は後で準備文を作成するまでこれを行います。

+0

接続プロパティ['allowMultiQueries'](https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html)を参照してください:* '; ' 1つのステートメント中に複数のクエリを区切るには(true/false)、デフォルトは「false」です。* – Andreas

+0

すでにそれをしました。接続時に "?allowMultiQueries = TRUE"をデータベースに追加しました。結果に差はありません。 – MXG123

関連する問題