900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 【openGauss】Oracle到postgresql的字符集名称映射表

【openGauss】Oracle到postgresql的字符集名称映射表

时间:2021-01-04 23:26:37

相关推荐

【openGauss】Oracle到postgresql的字符集名称映射表

前言

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

PG-ORACLE字符集映射

以下是PG到Oracle字符集映射表,其中PG字符集清单来自PG官方文档

(/docs/13/multibyte.html),oracle字符集是根据oracle文档(/en/database/oracle/oracle-database/21/nlspg/appendix-A-locale-data.html)中的描述及查阅相关标准资料后,进行的人工匹配,如有错误,请联系本人进行修改

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 IDFROM DUALCONNECT BY ROWNUM <= 5000)where name is not null;

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

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

/enmotech/compat-tools

另外,nls_charset_name及nls_charset_id这两个函数的兼容版近期也会提交到compat-tools中去,在提交之前也可先试用尝鲜版

/darkathena/opengauss-oracle/blob/main/oracle-function/nls_charset_name.sql

/darkathena/opengauss-oracle/blob/main/oracle-function/nls_charset_id.sql

本文作者:DarkAthena本文链接:https://www.darkathena.top/archives/oracle-postgresql-charset-matching版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。