有人可以清楚地解释这些表中值之间的差异。 (标题中提到)
我明白:
nls_session_parameters
:在会话级别设置值(在实例和数据库级别上执行这些操作)
nls_instance_parameters
:在实例级别设置值(我们的意思是实例级别)
nls_database_parameters
:在整个数据库级别设置值。
现在,如果数据库是RAC类型,多个SID在上表中有不同的值吗?
我目前正面临一个问题:&{39; NLS_NUMERIC_CHARACTERS
'在许多会话中被设置为错误的值,我不能每次都改变会话。行为是随机的,非常混乱
答案 0 :(得分:3)
对于99.9%的已知宇宙,您只会关心会话设置。会话设置始终覆盖数据库或实例设置。会话设置由客户端上的设置决定,而不是由服务器上的任何内容决定。即使您的代码看起来没有客户端(例如,通过dbms_job
提交的作业),提交作业的会话的NLS设置也将用于执行该作业。
在RAC集群中,只有一个数据库,但该数据库有多个实例(每个RAC节点一个)。您可能能够在RAC集群的不同节点上具有不同的NLS设置(因此导致nls_instance_parameters
具有不同的结果)但是从基本上0个问题可以解决的角度来看这将是疯狂的。从这一观点来看,在RAC集群的不同节点上运行不同的配置设置是DBA的痛苦,痛苦和心痛的一个因素。