我正在处理用户数据并将其存储到 oracle,其中可能包含 "'"
、"''"
或 "'''"
。
我尝试使用 replaceAll()
方法来转换数据,但它输出的结果不是我预期的结果。
尝试replaceAll()但不起作用
String sAddress1="";
sAddress1 = "ABC''S ROA'''D";
sAddress1 = sAddress1.replaceAll("'","''");
我期望 sAddress1 的输出为:
"ABC''''S ROA''''''D"
但实际输出是:
"ABC''S ROA''''D"
最佳答案
您的代码工作正常。问题在于 Oracle DB 中的持久性。
你以什么方式将它存储到数据库中?您使用 native SQL 吗?您使用 JPA/Hibernate 吗?
您可能正在使用 native SQL,因为 JPA/Hibernate 选项应该为您处理引用。
查看 Oracle 文档中的文本文字部分 https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm#sthref344
或者查看有关 Oracle DB 转义单引号的其他答案 PL/SQL, how to escape single quote in a string? Escaping single quote in PLSQL
关于java - 如何将 "'“转换为 "' '”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57354859/