我想更新表中具有特殊字符''?@ @C $4 ABC
(开头两个字符是两个单引号)的密码Xyz
。
我正在尝试以下查询
UPDATE Xyz set password="''?@ @C $4" where user_no like '%123%';
但我收到错误
ORA-00911: invalid charachter
当您必须在字符串中使用多个单引号时,q-quoting 机制在这种情况下会有所帮助。
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 中并不常用。您可能想用单引号替换它们。