Oracle 无法删除unicode字符

Oracle 无法删除unicode字符,oracle,unicode,encoding,hex,Oracle,Unicode,Encoding,Hex,我在Oracle表NGUY中有一个文本字符串ỄN NGỌC HOÀNG。我曾尝试替换Unicode字符串,我的预期结果是NGUYEN NGOC HOANG,但没有成功 然后我尝试将其转换为十六进制,如下所示:从TestTable中选择rawtohexUnicodeColumn; 结果如下:4E 47 55 59 C3 8A CC 83 4E 20 4E 47 4F CC A3 43 20 48 4F 41 CC 80 4E 47 在Unicode表之后:对应的字符是:NGUYÊÌN NGOÌC

我在Oracle表NGUY中有一个文本字符串ỄN NGỌC HOÀNG。我曾尝试替换Unicode字符串,我的预期结果是NGUYEN NGOC HOANG,但没有成功

然后我尝试将其转换为十六进制,如下所示:从TestTable中选择rawtohexUnicodeColumn; 结果如下:4E 47 55 59 C3 8A CC 83 4E 20 4E 47 4F CC A3 43 20 48 4F 41 CC 80 4E 47

在Unicode表之后:对应的字符是:NGUYÊÌN NGOÌC HOAÌNG

有谁能帮我这个例子Oracle脚本,我没有编码方面的经验

更新1:

我尝试了BarbarosÖzhan的解决方案,但没有成功

SQL>选项卡为select'&i_str1'str1,从双2 select str1中选择str1, utl_raw.cast_to_varchar2nlssortstr1,'nls_sort=binary_ai'str2 从选项卡SQL>/输入i_str1的值:NGUYỄN NGỌ何聪


如果您使用Java连接到Oracle DBMS,请尝试下面的Java代码将其转换为uncent字符,然后更新DBMS中的行

public static String unAccent(String s) {
    String temp = Normalizer.normalize(s, Normalizer.Form.NFD);
    Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
    return pattern.matcher(temp).replaceAll("").replaceAll("Đ", "D").replace("đ", "");
}

您可以尝试使用此函数将其转换为非重音字符:

CREATE OR REPLACE FUNCTION FN_CONVERT_TO_VN
(
    STRINPUT IN NVARCHAR2
)
RETURN NVARCHAR2
IS
    STRCONVERT NVARCHAR2(32527);
BEGIN
STRCONVERT := TRANSLATE(
    STRINPUT, 'áàảãạăắằẳẵặâấầẩẫậđéèẻẽẹêếềểễệíìỉĩịóòỏõọôốồổỗộơớờởỡợúùủũụưứừửữựýỳỷỹỵÁÀẢÃẠĂẮẰẲẴẶÂẤẦẨẪẬĐÉÈẺẼẸÊẾỀỂỄỆÍÌỈĨỊÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢÚÙỦŨỤƯỨỪỬỮỰÝỲỶỸỴ', 'aaaaaaaaaaaaaaaaadeeeeeeeeeeeiiiiiooooooooooooooooouuuuuuuuuuuyyyyyAAAAAAAAAAAAAAAAADEEEEEEEEEEEIIIIIOOOOOOOOOOOOOOOOOUUUUUUUUUUUYYYYY'
);
RETURN STRCONVERT;
END;

谢谢,但是有没有办法通过剧本来完成呢?你指的是什么剧本?Oracle脚本还是别的什么?Oracle脚本,我只想在数据库中处理它我试过了,但没有成功。你能看看我的最新问题吗?嗨,先生,我能保留大写字母吗?@HoangTran我不能在我的数据库中测试它是否有效,但你能在你的数据库中用utl_raw.cast_to_varchar2rawtohexstr1替换str2吗。
CREATE OR REPLACE FUNCTION FN_CONVERT_TO_VN
(
    STRINPUT IN NVARCHAR2
)
RETURN NVARCHAR2
IS
    STRCONVERT NVARCHAR2(32527);
BEGIN
STRCONVERT := TRANSLATE(
    STRINPUT, 'áàảãạăắằẳẵặâấầẩẫậđéèẻẽẹêếềểễệíìỉĩịóòỏõọôốồổỗộơớờởỡợúùủũụưứừửữựýỳỷỹỵÁÀẢÃẠĂẮẰẲẴẶÂẤẦẨẪẬĐÉÈẺẼẸÊẾỀỂỄỆÍÌỈĨỊÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢÚÙỦŨỤƯỨỪỬỮỰÝỲỶỸỴ', 'aaaaaaaaaaaaaaaaadeeeeeeeeeeeiiiiiooooooooooooooooouuuuuuuuuuuyyyyyAAAAAAAAAAAAAAAAADEEEEEEEEEEEIIIIIOOOOOOOOOOOOOOOOOUUUUUUUUUUUYYYYY'
);
RETURN STRCONVERT;
END;