我正在尝试将值插入Oracle 10g数据库表。我想为列 FirstName 插入值,并且值有两个单引号,如下所示: O'Rielly的版。
我正在使用预准备的JDBC语句来传递参数 FirstName 的值。单引号(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
使用上面的代码,我遇到了问题。
答案 0 :(得分:1)
尝试更改
int iCount = pstmt.executeUpdate(strUpdateUserQuery.toString());
到
int iCount = pstmt.executeUpdate();