我有一个包含列的表,并且插入了数据,在数据中有一些字符,例如
输出应该是这样的
column name :Name
value 1: andrew-jr
value 2 :john-doctor
但我得到它
Name
andrewâ€jr
johnâ€doctor
-
已被â€
字符
答案 0 :(得分:3)
您的字符串包含CHR(226)
和CHR(128)
。
您可以使用TRANSLATE
或REPLACE
。
select TRANSLATE ( 'â€', CHR(226)||CHR(128), '-') FROM DUAL;
产生-
(在SQL开发人员中测试)
因此,要更新列(在执行此操作之前仔细检查),请使用
UPDATE yourtable
SET
columnname = translate(columnname,CHR(226)
|| CHR(128),'-')
WHERE
columnname LIKE '%'
|| CHR(226)
|| CHR(128)
|| '%';
要获取所有字符和CHR
值的完整列表,请使用以下任何一种。
SELECT
level i,
chr(level) str
FROM
dual
CONNECT BY
level <= 255;
OR
SET SERVEROUTPUT ON
BEGIN
FOR i IN 1..255 LOOP
dbms_output.put_line(chr(i)
|| ' == '
|| i);
END LOOP;
END;
/