Home >Database >Mysql Tutorial >oracle ASCII字符串<==>16进制串

oracle ASCII字符串<==>16进制串

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 15:04:011093browse

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 16进制串==ASCII字符串 要区分字符集,以中文字符为例,对于数据库字符集是中文,要保证能够正确转回来,要有所不同。数据库字符集是中文 create or replace function HexToAsc(sIn IN varchar2)

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

 

  16进制串==>ASCII字符串

  要区分字符集,以中文字符为例,对于数据库字符集是中文,要保证能够正确转回来,要有所不同。数据库字符集是中文

  create or replace function HexToAsc(sIn IN varchar2)

  RETURN varchar2

  IS

  sTmp varchar2(4000);

  i integer;

  x integer;

  BEGIN

  i:=1;

  stmp:='';

  loop

  exit when i>length(sIn);

  x:=to_number(substr(sIn,i,2),'XXXX');

  if x>128 then

  sTmp:=sTmp||chr(to_number(substr(sIn,i,4),'XXXX'));

  i:=i+4;

  else

  sTmp:=sTmp||chr(to_number(substr(sIn,i,2),'XXXX'));

  i:=i+2;

  end if;

  end loop;

  return sTmp;

  END;

  数据库字符集是英文

  create or replace function HexToAsc(sIn IN varchar2)

  RETURN varchar2

  IS

  sTmp varchar2(4000);

  i integer;

  BEGIN

  i:=1;

  stmp:='';

  loop

  exit when i>length(sIn);

  sTmp:=sTmp||chr(to_number(substr(sIn,i,2),'XXXX'));

  i:=i+2;

  end loop;

  return sTmp;

  END;

  测试,如下:

  SQL>select hextoasc(asctohex('你好ABC么')) from dual;

  HEXTOASC(ASCTOHEX('你好ABC么'))

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

  你好ABC么

  [1] [2] 

oracle ASCII字符串<==>16进制串

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:SQL Server通配符妙用Next article:Cacti监控Nginx服务