nls_length_semantics
我正在使用以下命令从 SQL*Plus 和 SQLDeveloper 中查找参数
SHOW PARAMETER nls_length_semantics
由于 SHOW PARAMETER 命令会查找 spfile,因此我期望使用这两种工具得到相同的结果,但实际输出却不同。使用 SQLDeveloper 时,我得到的是 BYTE,而使用 SQL*Plus 时,我得到的是 CHAR。我已经手动检查了 spfile 中的 pfile,并将参数设置为 CHAR。
我尝试查看SQLDeveloper > Tools > Preferences > NLS
并设置为 BYTE,但据我所知,此设置适用于会话。
为什么我没有得到相同的输出,CHAR?
不,它查询
SYS.V_$PARAMETER
视图;来自 SQL*Plus 文档:alter session set nls_length_semantics = byte
如果您在 SQL*Plus 会话中执行操作,那么您的show
命令现在也会显示 BYTE。如果直接查询V$PARAMETER:
然后你会看到这
ISSES_MODIFIABLE
是 TRUE,如果你将alter session
值ISMODIFIED
从 FALSE 更改为 MODIFIED,则 VALUE 会发生变化以匹配你的 alter 语句。如果您想查看系统(而不是会话)值,则
NLS_DATABASE_PARAMETERS
直接查询,但无论如何,活动会话值可能更有用。