关于字符集中NLS_LANG参数show parameter nls 和v$nls_parameter 中的值不一样

2024-05-13 02:58

本文主要是介绍关于字符集中NLS_LANG参数show parameter nls 和v$nls_parameter 中的值不一样,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天下午,在测试库上偶然发现:

alter session set nls_language='american';   后

show parameter nls


这个nls_language参数竟然没有变

执行:select * from v$nls_parameters;   (查看当前session的)


这个值变了;

也就是说我alter session set nls_language='american';修改当前会话的此参数是没错的

那为什么show parameter nls中的值没变呢?

------------------------------------------------------------------------------------------------------------------------------------

找了一下午,总算有点眉目了

关于NLS相关的参数,比较特殊:

它有三个档:

1、数据库服务器字符集:select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。

2、客户端字符集环境:select * from nls_instance_parameters,其来源于v$parameter , 表示客户端的字符集的设置    

----这就是show parameter nls中的参数(show parameter 显示的就是v$parameter 中的值)

3、当前会话的字符集:select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置  

----我们alter session set nls_language='AMERICAN';   改的就是会话的字符集


所以说我们alter session set nls_language='AMERICAN';  后show parameter nls中的值并没有变;

因为NLS相关的参数比较特殊,show parameter nls 显示的是instance档的,而不是当前session的;

别的参数,show parameter 显示的是当前session的





*****************补充********************

SQL> select * from nls_database_parameters;PARAMETER                      VALUE
------------------------------ --------------------------------------------------------------------------------
NLS_LANGUAGE                   SIMPLIFIED CHINESE
NLS_TERRITORY                  CHINA
NLS_CURRENCY                   ?
NLS_ISO_CURRENCY               CHINA
NLS_NUMERIC_CHARACTERS         .,
NLS_CHARACTERSET               ZHS16GBK
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                DD-MON-RR
NLS_DATE_LANGUAGE              SIMPLIFIED CHINESE
NLS_SORT                       BINARY
NLS_TIME_FORMAT                HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY              ?
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE
NLS_NCHAR_CHARACTERSET         AL16UTF16
NLS_RDBMS_VERSION              11.2.0.1.020 rows selected


数据库字符集(NLS_CHARACTERSET):表中CHAR, VARCHAR2, CLOB, LONG等类型数据用数据库字符集

国家字符集(NLS_NCHAR_CHARACTERSET):表中NCHAR, NVARCHAR2, NCLOB等类型数据用国家字符集

其实大部分情况我们都是用的数据库字符集,国家字符集用的很少,仅作为一个补充


US7ASCII            ----英文字符集(老外用)
zhs16cgb231280    ----进化后就是ZHS16GBK         
AL32UTF8           -----数据库字符集(跨国企业)
AL16UTF16         ----国家字符集就用这个,不用别的           
ZHS16GBK         --- 数据库字符集(就中国人用)

utf8          ---进化后就是AL32UTF8           


国家字符集就用AL16UTF16 

如果你的数据库可能要涉及到多个国家的语言,那数据库字符集选  AL32UTF8  

如果你的数据库就中国人用,那就选 ZHS16GBK,以为ZHS16GBK要比AL32UTF8字符编码占的空间少,性能更好






这篇关于关于字符集中NLS_LANG参数show parameter nls 和v$nls_parameter 中的值不一样的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/984487

相关文章

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

一文详解PostgreSQL复制参数

《一文详解PostgreSQL复制参数》PostgreSQL作为一款功能强大的开源关系型数据库,其复制功能对于构建高可用性系统至关重要,本文给大家详细介绍了PostgreSQL的复制参数,需要的朋友可... 目录一、复制参数基础概念二、核心复制参数深度解析1. max_wal_seChina编程nders:WAL