2012-08-14 24 views
1

像以前一樣,製作Java-Oracle11g-JDBC (OJDBC)的代碼。 Java代碼嘗試在下面的語句中執行executeUpdate()併發生錯誤。但Oracle 11g在沒有任何問題的情況下執行它(通過它的GUI)。一個簡單的創建用戶語句失敗?

聲明 -

CREATE USER Person identified by 2012; 

錯誤(即的printStackTrace的一部分) -

java.sql.SQLSyntaxErrorException: ORA-00911: invalid character 
+0

你嘗試刪除';'在結尾?是2012年的密碼?如果是這樣,請嘗試用''來逃避。 – markus 2012-08-14 08:48:21

回答

3

Oracle不喜歡在最後的分號。你不需要OJDBC查詢中的分號,儘管它可以從Oracle GUI中使用。

+0

這很奇怪。 Oracle 11g的GUI喜歡分號。一些java-sql語句成功使用了semis,那麼爲什麼它會在上述情況下投訴? – 2012-08-14 08:57:27

+0

@sweetdreams是的,像JDBC-> MySQL是分號罰款。但是Oracle的JDBC不允許多個查詢,我想它完全認爲';'是非法角色。我沒有解釋爲什麼會這樣。 – 2012-08-14 09:01:08

+3

@sweetdreams使用分號的原因是終止一行,以便編譯器或引擎知道這是語句的結尾。 JDBC在字符串(「」)內不需要分號。問候 – user75ponic 2012-08-14 09:44:29