IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 【openGauss】Oracle到postgresql的字符集名称映射表 -> 正文阅读

[大数据]【openGauss】Oracle到postgresql的字符集名称映射表

前言

最近在写支持openGauss的dbms_lob包,其中的converttoblob及converttoclob两个过程涉及到了字符集相关内容(有个参数是nls_charset_id),但openGauss(基于postgresql)中的字符集名称和oracle的不一致,在迁移时,需要进行一些转换,因此本人做了如下整理。

PG-ORACLE字符集映射

以下是PG到Oracle字符集映射表,其中PG字符集清单来自PG官方文档
(http://postgres.cn/docs/13/multibyte.html),oracle字符集是根据oracle文档(https://docs.oracle.com/en/database/oracle/oracle-database/21/nlspg/appendix-A-locale-data.html)中的描述及查阅相关标准资料后,进行的人工匹配,如有错误,请联系本人进行修改

PGORACLENLS_CHARSET_ID描述语言是否服务器端?ICU?字节/字符别名
BIG5ZHT16BIG5865Big Five繁体中文1–2
EUC_CN扩展UNIX编码-中国简体中文1–3
EUC_JPJA16EUC830扩展UNIX编码-日本日文1–3
EUC_JIS_2004JA16EUCTILDE837扩展UNIX编码-日本, JIS X 0213日文1–3
EUC_KR扩展UNIX编码-韩国韩文1–3
EUC_TWZHT32EUC860扩展UNIX编码-台湾繁体中文,台湾话1–3
GB18030ZHS32GB18030854国家标准中文1–4
GBKZHS16GBK852扩展国家标准简体中文1–2WIN936,?Windows936
ISO_8859_5CL8ISO8859P535ISO 8859-5,?ECMA?113拉丁语/西里尔语1
ISO_8859_6AR8ISO8859P636ISO 8859-6,?ECMA?114拉丁语/阿拉伯语1
ISO_8859_7EL8ISO8859P737ISO 8859-7,?ECMA?118拉丁语/希腊语1
ISO_8859_8IW8ISO8859P838ISO 8859-8,?ECMA?121拉丁语/希伯来语1
JOHABKO16KSCCS845JOHAB韩语1–3
KOI8RCL8KOI8R196KOI8-R西里尔语(俄语)1KOI8
KOI8UCL8KOI8U51KOI8-U西里尔语(乌克兰语)1
LATIN1WE8ISO8859P131ISO 8859-1,?ECMA?94西欧1ISO88591
LATIN2EE8ISO8859P232ISO 8859-2,?ECMA?94中欧1ISO88592
LATIN3SE8ISO8859P333ISO 8859-3,?ECMA?94南欧1ISO88593
LATIN4NEE8ISO8859P434ISO 8859-4,?ECMA?94北欧1ISO88594
LATIN5WE8ISO8859P939ISO 8859-9,?ECMA?128土耳其语1ISO88599
LATIN6NE8ISO8859P1040ISO 8859-10,?ECMA?144日耳曼语1ISO885910
LATIN7BLT8ISO8859P1347ISO 8859-13波罗的海1ISO885913
LATIN8CEL8ISO8859P1448ISO 8859-14凯尔特语1ISO885914
LATIN9WE8ISO8859P1546ISO 8859-15带欧罗巴和口音的LATIN11ISO885915
LATIN10ISO 8859-16,?ASRO?SR 14111罗马尼亚语1ISO885916
MULE_INTERNALMule内部编码多语种编辑器1–4
SJISJA16SJIS832Shift JIS日语1–2Mskanji,?ShiftJIS,?WIN932,?Windows932
SHIFT_JIS_2004JA16SJISTILDE838Shift JIS, JIS X 0213日语1–2
SQL_ASCIIUS7ASCII1未指定(见文本)任意1
UHCKO16MSWIN949846统一韩语编码韩语1–2WIN949,?Windows949
UTF8AL32UTF8873Unicode, 8-bit所有1–4Unicode
WIN866RU8PC866152Windows CP866西里尔语1ALT
WIN874Windows CP874泰语1
WIN1250EE8MSWIN1250170Windows CP1250中欧1
WIN1251CL8MSWIN1251171Windows CP1251西里尔语1WIN
WIN1252WE8MSWIN1252178Windows CP1252西欧1
WIN1253EL8MSWIN1253174Windows CP1253希腊语1
WIN1254TR8MSWIN1254177Windows CP1254土耳其语1
WIN1255IW8MSWIN1255175Windows CP1255希伯来语1
WIN1256AR8MSWIN1256560Windows CP1256阿拉伯语1
WIN1257BLT8MSWIN1257179Windows CP1257波罗的海1
WIN1258VN8MSWIN125845Windows CP1258越南语1ABC,?TCVN,?TCVN5712,?VSCII

nls_charset_name-nls_charset_id

oracle官方文档未给出nls_charset_name及nls_charset_id的匹配关系,但提供了两个函数
nls_charset_name和nls_charset_id,可以指定一个字符集id查询字符集名称,或者指定一个字符集名称查询字符集id。经确认,目前字符集id最大才到2002,因此可以通过以下sql查询完整的对应关系

select *
  from (SELECT NLS_CHARSET_NAME(ROWNUM) NAME, ROWNUM ID
          FROM DUAL
        CONNECT BY ROWNUM <= 5000)
 where name is not null;

在oracle 21c中查询,可以得到258个字符集

NLS_CHARSET_NAMENLS_CHARSET_ID
US7ASCII1
WE8DEC2
WE8HP3
US8PC4374
WE8EBCDIC375
WE8EBCDIC5006
WE8EBCDIC11407
WE8EBCDIC2858
WE8EBCDIC11469
WE8PC85010
D7DEC11
F7DEC12
S7DEC13
E7DEC14
SF7ASCII15
NDK7DEC16
I7DEC17
NL7DEC18
CH7DEC19
YUG7ASCII20
SF7DEC21
TR7DEC22
IW7IS96023
IN8ISCII25
WE8EBCDIC114827
WE8PC85828
WE8ISO8859P131
EE8ISO8859P232
SE8ISO8859P333
NEE8ISO8859P434
CL8ISO8859P535
AR8ISO8859P636
EL8ISO8859P737
IW8ISO8859P838
WE8ISO8859P939
NE8ISO8859P1040
TH8TISASCII41
TH8TISEBCDIC42
BN8BSCII43
VN8VN344
VN8MSWIN125845
WE8ISO8859P1546
BLT8ISO8859P1347
CEL8ISO8859P1448
CL8ISOIR11149
WE8NEXTSTEP50
CL8KOI8U51
AZ8ISO8859P9E52
AR8ASMO708PLUS61
AR8EBCDICX70
AR8XBASIC72
EL8DEC81
TR8DEC82
WE8EBCDIC37C90
WE8EBCDIC500C91
IW8EBCDIC42492
TR8EBCDIC102693
WE8EBCDIC87194
WE8EBCDIC28495
WE8EBCDIC104796
WE8EBCDIC1140C97
WE8EBCDIC114598
WE8EBCDIC1148C99
WE8EBCDIC1047E100
WE8EBCDIC924101
EEC8EUROASCI110
EEC8EUROPA3113
LA8PASSPORT114
BG8PC437S140
EE8PC852150
RU8PC866152
RU8BESTA153
IW8PC1507154
RU8PC855155
TR8PC857156
CL8MACCYRILLIC158
CL8MACCYRILLICS159
WE8PC860160
IS8PC861161
EE8MACCES162
EE8MACCROATIANS163
TR8MACTURKISHS164
IS8MACICELANDICS165
EL8MACGREEKS166
IW8MACHEBREWS167
EE8MSWIN1250170
CL8MSWIN1251171
ET8MSWIN923172
BG8MSWIN173
EL8MSWIN1253174
IW8MSWIN1255175
LT8MSWIN921176
TR8MSWIN1254177
WE8MSWIN1252178
BLT8MSWIN1257179
D8EBCDIC273180
I8EBCDIC280181
DK8EBCDIC277182
S8EBCDIC278183
EE8EBCDIC870184
CL8EBCDIC1025185
F8EBCDIC297186
IW8EBCDIC1086187
CL8EBCDIC1025X188
D8EBCDIC1141189
N8PC865190
BLT8CP921191
LV8PC1117192
LV8PC8LR193
BLT8EBCDIC1112194
LV8RST104090195
CL8KOI8R196
BLT8PC775197
DK8EBCDIC1142198
S8EBCDIC1143199
I8EBCDIC1144200
F7SIEMENS9780X201
E7SIEMENS9780X202
S7SIEMENS9780X203
DK7SIEMENS9780X204
N7SIEMENS9780X205
I7SIEMENS9780X206
D7SIEMENS9780X207
F8EBCDIC1147208
WE8GCOS7210
EL8GCOS7211
US8BS2000221
D8BS2000222
F8BS2000223
E8BS2000224
DK8BS2000225
S8BS2000226
WE8BS2000E230
WE8BS2000231
EE8BS2000232
CE8BS2000233
CL8BS2000235
WE8BS2000L5239
WE8DG241
WE8NCR4970251
WE8ROMAN8261
EE8MACCE262
EE8MACCROATIAN263
TR8MACTURKISH264
IS8MACICELANDIC265
EL8MACGREEK266
IW8MACHEBREW267
US8ICL277
WE8ICL278
WE8ISOICLUK279
EE8EBCDIC870C301
EL8EBCDIC875S311
TR8EBCDIC1026S312
BLT8EBCDIC1112S314
IW8EBCDIC424S315
EE8EBCDIC870S316
CL8EBCDIC1025S317
TH8TISEBCDICS319
AR8EBCDIC420S320
CL8EBCDIC1025C322
CL8EBCDIC1025R323
EL8EBCDIC875R324
CL8EBCDIC1158325
CL8EBCDIC1158R326
EL8EBCDIC423R327
WE8MACROMAN8351
WE8MACROMAN8S352
TH8MACTHAI353
TH8MACTHAIS354
HU8CWI2368
EL8PC437S380
EL8EBCDIC875381
EL8PC737382
LT8PC772383
LT8PC774384
EL8PC869385
EL8PC851386
CDN8PC863390
HU8ABMOD401
AR8ASMO8X500
AR8NAFITHA711T504
AR8SAKHR707T505
AR8MUSSAD768T506
AR8ADOS710T507
AR8ADOS720T508
AR8APTEC715T509
AR8NAFITHA721T511
AR8HPARABIC8T514
AR8NAFITHA711554
AR8SAKHR707555
AR8MUSSAD768556
AR8ADOS710557
AR8ADOS720558
AR8APTEC715559
AR8MSWIN1256560
AR8NAFITHA721561
AR8SAKHR706563
AR8ARABICMAC565
AR8ARABICMACS566
AR8ARABICMACT567
LA8ISO6937590
WE8DECTST798
JA16VMS829
JA16EUC830
JA16EUCYEN831
JA16SJIS832
JA16DBCS833
JA16SJISYEN834
JA16EBCDIC930835
JA16MACSJIS836
JA16EUCTILDE837
JA16SJISTILDE838
KO16KSC5601840
KO16DBCS842
KO16KSCCS845
KO16MSWIN949846
ZHS16CGB231280850
ZHS16MACCGB231280851
ZHS16GBK852
ZHS16DBCS853
ZHS32GB18030854
ZHT32EUC860
ZHT32SOPS861
ZHT16DBT862
ZHT32TRIS863
ZHT16DBCS864
ZHT16BIG5865
ZHT16CCDC866
ZHT16MSWIN950867
ZHT16HKSCS868
AL24UTFFSS870
UTF8871
UTFE872
AL32UTF8873
ZHT16HKSCS31992
ZHT32EUCTST993
WE16DECTST2994
WE16DECTST995
KO16TSTSET996
JA16TSTSET2997
JA16TSTSET998
UTF161000
US16TSTFIXED1001
TIMESTEN81002
JA16EUCFIXED1830
JA16SJISFIXED1832
JA16DBCSFIXED1833
KO16KSC5601FIXED1840
KO16DBCSFIXED1842
ZHS16CGB231280FIXED1850
ZHS16GBKFIXED1852
ZHS16DBCSFIXED1853
ZHT32EUCFIXED1860
ZHT32TRISFIXED1863
ZHT16DBCSFIXED1864
ZHT16BIG5FIXED1865
AL16UTF162000
AL16UTF16LE2002

目前compat-tools中已经加入了dbms_lob包,但常用的还差converttoblob、converttoclob以及文件相关操作,近期会先把这两个类型转换的补上去
https://gitee.com/enmotech/compat-tools

另外,nls_charset_name及nls_charset_id这两个函数的兼容版近期也会提交到compat-tools中去,在提交之前也可先试用尝鲜版
https://gitee.com/darkathena/opengauss-oracle/blob/main/oracle-function/nls_charset_name.sql
https://gitee.com/darkathena/opengauss-oracle/blob/main/oracle-function/nls_charset_id.sql

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-12 16:31:26  更:2022-05-12 16:33:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/29 8:45:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码