小编Mal*_*ous的帖子

CONVERT() 在 Oracle 中返回带有 CLOB 的垃圾

我希望修复 Oracle 中的数据表,理想情况下是通过非特权 SQL,该 SQL 已将 UTF-8 数据插入到 UTF-8 数据库中,错误地使用了 Latin-1 字符集。

该符号? GREEK SMALL LETTER BETA应该已进入数据库,但两个字符β已进入......因为两个 UTF-8 字符 Î LATIN CAPITAL LETTER I WITH CIRCUMFLEX后跟² SUPERSCRIPT TWO.

此示例代码演示了问题和修复方法,但它仅适用于VARCHAR列。一旦CLOB使用了a ,转换就会失败:

-- This must return AL32UTF8 for this example to be valid
SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';

CREATE TABLE EXAMPLE (T VARCHAR2(20));
INSERT INTO EXAMPLE (T) VALUES ('Example β');
SELECT T FROM EXAMPLE; -- Should return 'Example β'
SELECT …
Run Code Online (Sandbox Code Playgroud)

oracle character-set utf-8

3
推荐指数
1
解决办法
8855
查看次数

标签 统计

character-set ×1

oracle ×1

utf-8 ×1