2
我試圖在Oracle 10g數據庫表中插入值。我想爲列插入值,名字並且值有兩個像這樣的單引號: O'Rielly's Edition。在JDBC PreparedStatement參數中轉義兩個單引號
我正在使用JDBC的準備語句傳遞參數值名字。它用單引號(O'Rielly)正常工作。
但是,當我使用兩個單引號它給SQL錯誤ORA-00907: missing right parenthesis
。有關如何處理PreparedStatement中的兩個單引號的任何建議? 我的查詢如下:
StringBuffer strUpdateUserQuery = new StringBuffer("UPDATE USERS set FNAME = ? , LNAME = ?, USER_TIMEZONE = ?, CREATED_DATE = CURRENT_DATE, ACTIVE_STATUS = ?, APPROVAL_STATUS = ?,USER_GROUP_ID = ? where USER_ID = ?");
pstmt = conn.prepareStatement(strUpdateUserQuery.toString());
pstmt.setString(1, userVO.getFirstName());
pstmt.setString(2, userVO.getLastName());
pstmt.setString(3, userVO.getStrTimeZone());
pstmt.setString(4, userVO.getStatus());
pstmt.setString(5, userVO.getStrAppStatus());
pstmt.setInt(6, Integer.parseInt(userVO.getUserGroupId()));
pstmt.setString(7, userVO.getUserId());
int iCount = pstmt.executeUpdate(strUpdateUserQuery.toString());
而且我得到的錯誤是如下:
ORA-00907:缺少右括號\ n
有了上面的代碼,我我正在解決這個問題。
顯示你正在嘗試使用preparedStatement時插入什麼的例子。 – user75ponic
您不需要在綁定值中轉義單引號。請編輯您的問題以顯示您正在使用的實際準備好的陳述。 (我想,這個價值正如它的約束)。什麼是你回來的完整錯誤? –
PreparedStatement的重要優點之一是您無需擔心轉義。這聽起來好像你沒有正確使用PreparedStatement。 ** [編輯] **您的問題,並添加您使用的代碼。做**不**在評論中發佈代碼。 –