视图VI_PAYMENT_INFO_NH中带有中文,执行创建该视图语句后查看该视图,发现其中的中文是乱码,并且查询不到数据
通过查询数据库参数来查询Oracle数据库使用的是哪种字符集
SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET';
这将返回数据库当前使用的字符集名称,如AL32UTF8
、ZHS16GBK
等。 通常,如果你的数据库使用AL32UTF8
,那么你的客户端也可以使用AL32UTF8
。但是,如果你的数据库使用其他字符集(如ZHS16GBK
),你需要选择一个与之兼容的客户端字符集。
使用确定的字符集和语言环境来设置NLS_LANG
环境变量。NLS_LANG
的格式通常是<language>_<territory>.<clientside_characterset>
例如,如果你的数据库字符集是ZHS16GBK
,并且你希望使用简体中文(中国)作为语言环境,你可以将NLS_LANG
设置为:
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
在 Windows 系统中,你可以通过以下方式来设置 NLS_LANG
环境变量:
-
通过系统属性:
- 右键点击“我的电脑”或“此电脑”并选择“属性”。
- 点击“高级系统设置”。
- 在“高级”选项卡下,点击“环境变量”按钮。
- 在“系统变量”或“用户变量”部分(取决于你是否想为所有用户或特定用户设置变量),点击“新建”来创建一个新的环境变量。
- 设置变量名为
NLS_LANG
,变量值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK
(或根据你的 Oracle 数据库字符集设置适当的值)。
重新登录 PLSQL-Developer数据库连接工具执行创建VI_PAYMENT_INFO_NH视图语句后发现中文没有乱码,并且查询到视图的数据