我想问一下如何在SQL
中实现这样的东西String updateUserDocs1 = "UPDATE USERDOCS SET VIEW_DOCS = VIEW_DOCS + ' ' + ? WHERE USER_ID = ?";
它返回java sql语法错误。遇到了:" WHERE"在第1行
该陈述似乎在语法上是正确的。可能是什么问题?
答案 0 :(得分:1)
许多SQL方言支持+
运算符重载以进行字符串连接,但ANSI SQL标准字符串连接运算符为||
。
使用Derby,代码
sql = "UPDATE USERDOCS SET VIEW_DOCS = VIEW_DOCS + ' ' + ? WHERE USER_ID = ?";
PreparedStatement ps = conn.prepareStatement(sql);
导致以下错误
java.sql.SQLSyntaxErrorException:不支持左操作数类型为“VARCHAR”且右操作数类型为“CHAR”的“+”运算符。
然而,
sql = "UPDATE USERDOCS SET VIEW_DOCS = VIEW_DOCS || ' ' || ? WHERE USER_ID = ?";
PreparedStatement ps = conn.prepareStatement(sql);
正常工作。