2013-08-28 20 views
-1

說我的查詢是查詢終止與分號(;)獲得SQLEXCEPTION和過程不會終止

select * from table_a where pk=1; 

如果使用PreparedStatement的從Java運行此查詢(用分號),然後SqlExpection被拋出。 我正在使用Oracle 10g和java 5.

我的問題是:儘管查詢是有效的,爲什麼SqlException(ORA-00911:無效字符)發生在查詢時執行java prepared statement?

+1

你正在使用哪個數據庫? –

+0

你的問題是什麼? –

+0

您不需要終止準備好的語句。如果你省略分號,它會起作用嗎?還有什麼是例外。我敢肯定它並沒有說只是「SqlException」 – NeplatnyUdaj

回答

1

語句終結符不是語句本身的一部分。 JDBC API旨在執行單個語句,因此不應終止語句。

對於大多數數據庫,語句終結符不是語句語法的一部分,但實際上是CLI的工件(它需要知道何時將查詢發送到服務器)。

0

此行爲取決於您使用的數據庫驅動程序。 Java PreparedStatement會將這個以分號(;)終止的查詢發送給驅動程序。它依賴於數據庫是否理解sql查詢終止。