Oracle列内容显示为“?”,如何解决?

Oracle column contents displayed as "?", how to fix it?

dba_col_comments table 的第 COMMENTS 列中,一些符号显示为“?”。大概这些是替换的中文符号吧。

PL/SQL Developer 和 SQLPlus 显示相同的结果:

SQL> SELECT * FROM dba_col_comments WHERE table_name='XX' AND COLUMN_NAME='OO';

OWNER   TABLE_NAME  COLUMN_NAME               COMMENTS
------- ---------- -------------- -------------------------  
GAME    XX          OO             1?????????2?????????????


SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
----------------------------------
SIMPLIFIED CHINESE_CHINA.AL32UTF8

如何知道被问号代替的实际符号?

如果您的数据库按字面意思存储 ? 那么我不确定,但是您可以使用下面的内容

获取 comments 中第二个字符的 ascii 值
SELECT ASCII(SUBSTR(COMMENTS,2,1)) FROM DBA_COL_COMMENTS WHERE TABLE_NAME='XX' AND COLUMN_NAME='OO';

如果你想看到第三个,在substr参数中使用3

如果您得到的结果是 63? 的 ascii),那么我们需要找到另一种方法来查看它。检查并告诉我们。