2011-12-21 103 views
0

我正嘗試使用此代碼從我的oracle數據庫更新數據。 該程序沒有錯誤,但它顯示ORA-00933: SQL command not properly ended
任何人都可以讓我知道這是什麼意思,我該如何糾正它?無法使用java更新oracle數據庫中的數據

String gdta=" 
    UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' 
    WHERE CLIENT_ADDRESS4 = 68100 BATU CAVES SELANGOR D.E. 
UNION 
    UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' 
    WHERE CLIENT_ADDRESS4 = 47100 PUCHONG,SELANGORUNION 
    UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' 
    WHERE CLIENT_ADDRESS4 = 47100 PUCHONG"; 
+0

我格式化代碼使問題可見,當然這不會編譯。 – oers 2011-12-21 09:25:53

+0

TQ格式化代碼...更易讀... – tqa 2011-12-21 09:54:29

回答

5

您不能在union語句中組合更新語句。此外,它看起來像你需要引用client_address4值。

嘗試在SQL客戶端中運行SQL命令之前,嘗試它在java中,看看它是否工作。

我認爲你需要執行多個語句,而不是單一的一個,比如這個:

String gdta="UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' WHERE CLIENT_ADDRESS4 = '68100 BATU CAVES SELANGOR D.E.'"; 
String gdta2="UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' WHERE CLIENT_ADDRESS4 = '47100 PUCHONG,SELANGOR'"; 
String gdta3="UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' WHERE CLIENT_ADDRESS4 = '47100 PUCHONG'"; 

,或者使用一個單獨的語句與在子句:

String gdta="UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' WHERE CLIENT_ADDRESS4 in ('68100 BATU CAVES SELANGOR D.E.', '47100 PUCHONG,SELANGOR', '47100 PUCHONG')"; 
+0

TQ這麼多...我已經嘗試過它,它的工作原理...真的很感激它! – tqa 2011-12-21 09:47:03