函数或脚本来反转字节顺序oracle

时间:2014-10-24 11:05:56

标签: sql oracle

我想在PL / SQL中编写一个脚本来成对转换十六进制数字的字节顺序

离。 A1B2C3D4应该成为D4C3B2A1

请问我能帮助我使用哪种功能或脚本。

1 个答案:

答案 0 :(得分:3)

UTL_RAW包有一个方便的REVERSE function

select utl_raw.reverse('A1B2C3D4') from dual;

UTL_RAW.REVERSE('A1B2C3D4')
---------------------------
D4C3B2A1

这会为您提供RAW值,并且我在该示例中执行从字符串到RAW的隐式转换,因为我不知道您的数据类型是什么?重新开始。

您可以展开此内容,以VARCHAR2HEXTORAW function明确转换:

select utl_raw.reverse(hextoraw('A1B2C3D4')) from dual;

UTL_RAW.REVERSE(HEXTORAW('A1B2C3D4'))
-------------------------------------
D4C3B2A1

并使用RAWTOHEX function返回VARCHAR2

select rawtohex(utl_raw.reverse(hextoraw('A1B2C3D4'))) from dual;

RAWTOHEX(UTL_RAW.REVERSE(HEXTORAW('A1B2C3D4')))
-----------------------------------------------
D4C3B2A1

......具体取决于你需要的东西。