2017-06-19 57 views
-3

我有以下查詢(它實際上更復雜,但只是用於此目的的一個基本的)SQL查詢工作在MySQL,但沒有在Java中

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

直接與MySQL數據庫工作正常,但是當我使用它在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"; 

在這一過程的開始位是不錯,但它似乎末尾添加的語句。錯誤報告語法錯誤:

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

謝謝。

+1

*「和我做別人一樣」*那是怎麼回事? --- *「給我SQL語法錯誤」*告訴我們錯誤。 – Andreas

+0

標記時請小心。 mysql <> sql服務器。 –

+0

@Andreas我上面編輯顯示錯誤。 – MXG123

回答

-1

事實證明,語法沒有錯,它是一個查詢中的多個語句,它不喜歡。我個別實施了它們,並且工作。它不是理想的,但現在會做,直到我稍後創建一個準備好的聲明。

+0

查看連接屬性['allowMultiQueries'](https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html):*允許使用'; 「在一個語句中(true/false)分隔多個查詢,默認爲'false'。* – Andreas

+0

是的。已經做到了。連接時附加「?allowMultiQueries = TRUE」到數據庫。結果沒有什麼不同。 – MXG123

相關問題