首页 > 解决方案 > 如何在 oracle 11g 中使用特殊字符更新值

问题描述

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

我正在尝试以下查询

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

但我收到错误

ORA-00911: invalid charachter

标签: oracleoracle11gora-00911

解决方案


当您必须在字符串中使用多个单引号时,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>

推荐阅读