0

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

我正在尝试以下查询

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

但我收到错误

ORA-00911: invalid charachter
4

2 回答 2

1

当您必须在字符串中使用多个单引号时,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>
于 2020-06-04T19:20:56.233 回答
0

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

此外,双引号在 SQL 中并不常用。您可能想用单引号替换它们。

于 2020-06-04T16:22:19.403 回答