您可以从NLS-Views(NLS_DATABASE_PARAMETERS
,NLS_INSTANCE_PARAMETERS
,NLS_SESSION_PARAMETERS
)查询设置(约20个变量)。通过show parameter nls
,您可以查看SQL * Plus中的实际设置。
这些可以通过SYSDBA在几个方面改变:
- 数据库参数从启动时(一个或多个)PFILE读取。如果使用spfile,则可以通过
ALTER SYSTEM SCOPE=SPFILE
修改它们。如果你使用的pfile你必须编辑手动
- 参数由
ALTER SYSTEM SCOPE=MEMORY
设置,并在关机时
- 两个失去一次可以使用
SCOPE=BOTH
改变的实例。这将立即应用和生存的关机
客户可以重写此为自己的会话(至少?)两种方式:
- 将其设置为你的会话在SQL
ALTER SESSION
*加通过export NLS_...=...
客户端启动之前
- 设置环境变量在shell
后者覆盖了早期的,所以SESSION
击败INSTANCE
哪吃DATABASE
。
对于您的问题:您可以使用SELECT * FROM NLS_INSTANCE_SETTINGS
并将这些应用于您当前的会话ALTER SESSION SET ...
(对于这些变量中的每一个(可能通过一些PL/SQL过程))。另一种方法就是取消设置所有会话参数,以便使用实例参数。
如果您未在环境中设置任何NLS变量(特别是NLS_LANG
),则您的会话应该与实例或数据库的变量相同。在实践中,这绝不会像预期的那样工作,因为您总是会有一些locale
设置可以在SQLP * Plus中产生理想的结果。 ;-)