ORACLE的字符集

news/2024/11/8 20:54:43 标签: oracle, 数据库

我们在ORACLE数据库中常见的两种字符集:AL32UTF8/ZHS16GBK

什么是字符集: 
在计算机语言中每个国家对于自己国家语言的二进制代码设计是不一样的,例如:
zhs16gbk 简体中文字符集 :中   01010 国 01100  0101001100
utf8 A 010 B 100 C 110  ABC 010001110
0101001100  ABC
乱码

字符集是在创建数据库时选择的。请选择最能满足您现在和将来业务需要的字符集,因为选定字符集后很难再更改。
很难再更改=改不了 非要修改 只能删库重建

DBA在建库之间 数据库叫什么 用什么字符集

查询操作系统字符集:
locale  (  unix or linux)
chcp  (windows)

查询数据库所支持的数据库字符集:

select * from v$nls_valid_values where parameter='CHARACTERSET';


数据库服务器字符集select * from nls_database_parameters where parameter like '%CHARACTERSET%';  其来源于props$,是表示数据库的字符集。
  
客户端字符集环境 select * from v$nls_parameters where parameter in   ( 'NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET');  --查看客户端字符集
  

表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表

会话字符集环境 select * from nls_session_parameters; ,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。
  

影响Oracle数据库字符集最重要的参数是NLS_LANG参数。

它的格式如下: NLS_LANG = language_territory.charset

它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。

其中:

Language: 指定服务器消息的语言, 影响提示信息是中文还是英文

Territory: 指定服务器的日期和数字格式

Charset:  指定字符集。

如:AMERICAN _ AMERICA. ZHS16GBK

从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。
 
set NLS_LANG=AMERICAN_CHINA.ZHS16GBK
set NLS_LANG=Simplified Chinese_china.ZHS16GBK


echo $NLS_LANG$ 查看当前的操作系统的环境变量的字符集设置

修改当前会话的字符集:   export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" 
当前数据库使用的字符集:

SQL> select * from nls_database_parameters where parameter like '%CHARACTERSET%';--当前数据库使用的字符集

  
select * from v$nls_parameters where parameter in   ( 'NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET');  --查看客户端字符集

ALTER SESSION SET NLS_LANGUAGE= 'SIMPLIFIED CHINESE' NLS_TERRITORY= 'CHINA' NLS_NUMERIC_CHARACTERS='AL32UTF8';

alter session set NLS_NUMERIC_CHARACTERS= '.,';

###########################################################################


set NLS_LANG=AMERICAN_AMERICA.AL32UTF8 windows上设置    set NLS_LANG=AMERICAN_AMERICA.ZHS16CGB231280


select id,name,dump(name,1016) from t;

export  NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

set NLS_LANG=AMERICAN_AMERICA.ZHS16CGB231280

set NLS_LANG=AMERICAN_AMERICA.US7ASCII

set NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280"

set NLS_LANG=AMERICAN_AMERICA.AL32UTF8

set nls_lang=Simplified Chinese_China.AL32UTF8
#####################################################################################

如果想正确导出源数据库数据,则 Export 过程中用户会话字符集应等于源
数据库字符集或是源数据库字符集的超集

查询 oracle client  端的字符集:
在 windows 平台下,就是注册表里面相应 OracleHome 的 NLS_LANG。还可
以在 dos 窗口里面自己设置,
比如: set nls_lang=AMERICAN_AMERICA.ZHS16GBK
这样就只影响这个窗口里面的环境变量。

在 unix 平台下,就是环境变量 NLS_LANG。
$echo $NLS_LANG
AMERICAN_AMERICA.ZHS16GBK
如果检查的结果发现 server 端与 client 端字符集不一致,请统一修改为同
server 端相同的字符集。


http://www.niftyadmin.cn/n/5744419.html

相关文章

pnpm管理多工作区依赖

pnpm是一个支持多包仓库的一个包管理工具,那么怎么可以在项目根目录下执行pnpm install的时候,也能同步让所有的工作区都能够通安装依赖呢? 方式一,在执行pnpm install指令的时候,添加recursive参数: pnpm install --recursive 方式二,在项目的根目录下通过pnpm的配置文件p…

VBA经典应用69例应用7:从字符串中删除特定字符

《VBA经典应用69例》(版权10178981),是我推出的第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便…

成都睿明智科技有限公司抖音电商服务效果如何?

在这个短视频风起云涌的时代,抖音电商以其独特的魅力,成为了众多商家竞相追逐的新蓝海。而在这片波澜壮阔的商海中,成都睿明智科技有限公司犹如一艘稳健的航船,引领着无数企业驶向成功的彼岸。今天,就让我们一起揭开成…

FTP替代方案:FileLink内外网文件摆渡,助力企业安全高效文件传输

FTP(文件传输协议)一直是企业进行文件传输的标准解决方案。但随着网络安全威胁的不断增加和企业对于文件传输效率和安全性的更高要求,FTP逐渐显得力不从心。那么,如何安全、便捷地传输大文件和敏感数据呢?FileLink作为…

设计模式小结一装饰者模式

先上结论: 这也是一个Android客户端开发中经常使用到的一个设计模式,最典型的就是OkHttp、Retrofit、Glide,Android源代码中你最常见到的Context上下文,也是采用的装饰者模式。 废话不多说,开干 简单总结下装饰者模式的定义: 动态地给一个对象添加一些额外的职责,就…

梧桐数据库与mysql及oracle关于交换服务器编号的SQL写法分析

一、背景说明 移动运营商的数据中心内有大量服务器设备,它们的性能可能受到相邻服务器的影响,需要优化其数据中心内部服务器的布局。 为了找到最优的布局方案,需要评估不同布局对整体系统性能的影响。一种简单的测试方法是模拟交换服务器的…

ffmpeg命令

1. 修改视频的数据速率 ffmpeg.exe -i video.mp4 -r 30 -c:v libx264 -b:v 1500k output.mp42. mp4与h264互相转换 ffmpeg.exe -i a.mp4 -vcodec h264 output.h264 ffmpeg.exe -i output.h264 -vcodec mpeg4 output.mp4

2024MoonBit全球编程创新挑战赛参赛作品“飞翔的小鸟”技术开发指南

本文转载自 CSDN:https://blog.csdn.net/m0_61243965/article/details/143510089作者:言程序plus 实战开发基于moonbit和wasm4的飞翔的小鸟游戏 游戏中,玩家需要通过上下左右按键控制Bird,在不断移动的障碍pipe之间穿梭&#xf…