为什么在Oracle中 N L anguage S <三个逻辑不同视图/ strong>支持?
我可以理解区分会话和数据库的必要性 - 允许客户端自定义设置。
会话与实例怎么样?
我运行了一个查询来比较它们之间的所有值,这里是结果(我注意到NLS_DATABASE_SETTINGS有更多参数,其他所有参数加上更多参数,因此我做了一个外连接,以它作为我的起点):
SELECT
db.parameter as parameter,
db.value as database_value,
s.value as session_value,
i.value as instance_value
FROM
nls_database_parameters db
LEFT JOIN
nls_session_parameters s
ON s.parameter = db.parameter
LEFT JOIN
nls_instance_parameters i
ON i.parameter = db.parameter
ORDER BY parameter
我正在努力挖掘并解决我的pl / sql开发人员客户端的问题,单独,无法显示希伯来字符。公司所有其他人都是。
更新:根据我发布的here解决方案,解决了希伯来语中的显示字符问题(此处不是问题)。
答案 0 :(得分:4)
好问题,在我做一些研究之前,我不知道它们之间的区别。看看这个网站National-Language-Support
NLS_DATABASE_PARAMETERS
创建数据库时,您可以告诉它您将如何处理 或不处理数据库的全球化。该 NLS_DATABASE_PARAMETERS视图将显示这些设置的内容 数据库创建时间。这些是在数据库级别修复的 无法改变。好的是,虽然他们确实设置了一些 关于让您的数据库通话,您的选择 全局,它们仅在强制执行检查约束时使用 数据库。因此,你真的不需要担心什么 这些设置是在数据库创建时间之后。
NLS_INSTANCE_PARAMETERS
如您所知,您可以为实例更改各种参数 通过INIT.ORA文件或SPFILE。该 NLS_INSTANCE_PARAMETERS视图将显示已设置的设置 在实例级别。
NLS_SESSION_PARAMETERS
此外,您还可以设置每个会话 全局参数和NLS_SESSION_PARAMETERS视图将显示 你当前的设置是什么。此视图特定于 会话查询它。