Oracle数据库替换列中单引号为空格的正确SQL语句咨询
解决Oracle中替换字符串单引号的问题
你的问题主要出在两个细节上:一是直接把目标字符串Lucy'Mark硬写在函数里导致语法解析错误,二是替换目标写错成了空字符串,而不是你需要的空格。
先给你正确的查询语句,再拆解说明:
-- 查询所有客户名称替换单引号后的结果 SELECT REPLACE(client_name, '''', ' ') FROM gen_clientvendor_m;
如果是要直接更新表中的数据(把列里的单引号永久换成空格),执行这条:
UPDATE gen_clientvendor_m SET client_name = REPLACE(client_name, '''', ' '); -- 记得执行COMMIT提交修改 COMMIT;
关键细节解释:
- 要操作的是列名(比如
client_name,而不是直接写具体的字符串值),这样才会对表中所有行的该列生效 - 在Oracle的字符串语法里,单引号需要用另一个单引号转义,所以要替换的单引号写成
''''(两个单引号代表一个实际的单引号) - 第三个参数是
' '(带空格的字符串),这样就能把原字符串里的单引号替换成空格,比如Lucy'Mark Now会变成Lucy Mark Now
如果你想单独测试替换逻辑是否正确,可以用这条语句验证:
SELECT REPLACE('Lucy''Mark Now', '''', ' ') AS replaced_name FROM dual;
执行后会直接返回Lucy Mark Now,帮你确认替换规则没问题。
内容的提问来源于stack exchange,提问作者NewDeveloper
相关产品推荐
相关产品推荐

