首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle数据库-字符集

Oracle数据库-字符集
EN

Stack Overflow用户
提问于 2018-02-13 21:56:58
回答 1查看 1.3K关注 0票数 0

当我使用sqlplus或任何其他工具进行编译时,如何将特殊字符保存在包中?

NLS_CHARACTERSET : WE8MSWIN1252 客户端字符设置:未知 问题是:数据表示 OS和DB : UNIX \ Oracle数据库12c企业版发行版12.1.0.2.0 -64位生产 Oracle数据库12c企业版发行版12.1.0.2.064位生产 PL/SQL版本12.1.0.2.0 -生产 核心12.1.0.2.0生产 TNS for Linux: Version12.1.0.2.0-生产 NLSRTL版本12.1.0.2.0 -生产

示例:

代码语言:javascript
复制
CREATE OR REPLACE PACKAGE BODY pkg1
AS
  procedure sp 
  IS
  v_var VARCHAR2(100);
  BEGIN
        v_var := '**último**';
  END;

   END;

当我描述这个包时,如下所示:

代码语言:javascript
复制
CREATE OR REPLACE PACKAGE BODY HR.pkg1
AS
  procedure sp
  IS
  v_var VARCHAR2(100);
  BEGIN
        v_var := '**£ltimo**';     
  END;


   END;
EN

回答 1

Stack Overflow用户

发布于 2018-02-14 10:23:56

有一种将任意unicode数据输入oracle数据库的通用方法,将自己限制在ascii字符集中:

  1. 确定目标文本的utf-8表示为十六进制字节序列。 使用一个utf8 8-精明的编辑器,并输入您希望传输到数据库的文本。许多编辑器提供了一种十六进制模式,允许您检查utf8表示并将其写在其他地方。或者使用专用十六进制编辑器或使用od (linux)等cli工具生成文件内容,作为十六进制表示的八进制列表序列: 输出.副本.格式x1 -宽度=16 demo.txt 但是,输出需要一些后处理才能去掉行号和空白,这应该很简单。对于大容量数据,请使用sed或类似工具。
  2. 将十六进制字符串转换为甲骨文的raw数据类型。 在HEXTORAW(x)中调用PlSql是很有用的。
  3. raw数据转换为varchar2,即。数据库字符集。 使用plsql包过程utl_i18n.raw_to_char。它的第二个参数指定源编码。

总之,该方法归结为类似于(测试字符串是从af的小写字母,后面是德国货币)的查询:

代码语言:javascript
复制
 select utl_i18n.raw_to_char ( hextoraw ( '616263646566c3a4c3b6c3bcc384c396c39cc39f' ), 'AL32UTF8' ) from dual;

在你的包裹里你会写:

代码语言:javascript
复制
 v_var := '**' || utl_i18n.raw_to_char ( hextoraw ( 'c3ba' ), 'AL32UTF8' )
               || 'ltimo**';
   -- c3ba being the utf8 encoding of unicode codepoint U+00fa,
   -- 'LATIN SMALL LETTER U WITH ACUTE'

显然,这种技术只在数据库字符集能够首先表示字符的情况下才有效。

快捷方式

  1. 您可以使用任何其他源编码,只要db知道这种编码,就可以表示所需的特殊字符。也就是说,可以使用iso 8859-x系列的拉丁字母编码。在ú和In 8859-1的例子中: v_var := utl_i18n.raw_to_char ( 'fa‘),WE8ISO8859P1( 'WE8ISO8859P1’);
  2. 使用数据库中的国家字符集,您可以通过文字字符串中的代码点输入unicode字符。只需用UNISTR函数包装文字字符串: v_var := TO_CHAR(‘**\00Faltimo**’)来自dual;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48776327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档