我希望修复 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)