首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NLS_CHARACTERSET in nls_session_parameters不返回

NLS_CHARACTERSET in nls_session_parameters不返回
EN

Stack Overflow用户
提问于 2020-01-15 06:59:04
回答 2查看 1.9K关注 0票数 0

我在Oracle中使用的一个应用程序似乎有字符问题,我运行下面的查询来检查CHARACTERSET。

  • SELECT * FROM nls_session_parameters WHERE PARAMETER='NLS_CHARACTERSET';
  • SELECT * FROM nls_database_parameters WHERE PARAMETER='NLS_CHARACTERSET';

来自nls_database_parameters的第二个查询返回AL32UTF8

但是第一个查询似乎返回None

我读过nls_session_parameters优先于nls_database_parameters,,但在这种情况下,似乎没有为其设置任何值,它是返回到nls_database_parameters,,还是需要配置一些东西来设置nls_session_parameters.

谢谢你对此的任何投入。

EN

回答 2

Stack Overflow用户

发布于 2020-01-15 07:16:14

来自Oracle Docs

NLS_SESSION_PARAMETERS显示正在查询视图的会话的NLS参数及其值。它不显示有关字符集的信息。

基本上,NLS_SESSION_PARAMETERS将不会有名为NLS_CHARACTERSET的参数。

字符集是区域设置的一部分,区域设置由NLS_LANG的值决定。

NLS_LANG被设置为UNIX平台上的环境变量。NLS_LANG是在Windows平台上的注册表中设置的。

因此,请检查NLS_LANG。此外,客户端应用程序在启动时会获取此信息,并且不能从内部更改。

票数 1
EN

Stack Overflow用户

发布于 2020-01-15 07:11:22

NLS_CHARACTERSET数据库使用的字符集。您的会话(即客户端)不存储任何内容,因此不存在NLS_CHARACTERSET

我假设您正在寻找NLS_LANG,它告诉数据库客户端使用哪个字符集。不能从任何数据库视图/表查询NLS_LANG,必须检查客户端中的设置。您只能在客户端设置NLS_LANG,而不能在数据库端设置。

注意,一些客户机(例如,基于Java的客户端)不使用NLS_LANG设置,它们使用的是不同的全球化机制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59746453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档