如何在 oracle 11g 中使用特殊字符更新值



我想更新表中具有特殊字符''?@ @C $4 ABC的密码(开头的两个字符是两个单引号Xyz

我正在尝试以下查询

UPDATE Xyz set password="''?@ @C $4" where user_no like '%123%';

但是我得到错误

ORA-00911: invalid charachter

在这种情况下,当您必须在字符串中使用多个单引号时,q 引用机制会有所帮助。

SQL> desc xyz
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
USER_NO                                            NUMBER
PASSWORD                                           VARCHAR2(20)
SQL> select * From xyz;
USER_NO PASSWORD
---------- --------------------
123 a
SQL> update xyz set password = q'[''?@ @C $3]' where user_no = 123;
1 row updated.
SQL> select * From xyz;
USER_NO PASSWORD
---------- --------------------
123 ''?@ @C $3
SQL>

您是否从其他编辑器或 IDE 粘贴查询? 或者也许从Windows应用程序复制到Linux?在这种情况下,可能存在不可打印的字符。 如果是这样,您可以重新键入(而不是复制粘贴(SQL 语句并尝试。

此外,双引号在 SQL 中不常用。您可能希望将它们替换为单引号。

最新更新