1.数值类型转换为二进制(TO_BYTE+FROM_BYTES)
sel FROM_BYTES(TO_BYTE(1024),'base2');
2.字符串类型转换为二进制(TO_BYTES+FROM_BYTES)
sel cast(23 as varchar(20) character set unicode) vl,from_bytes(to_bytes(vl,'BASE10'),'BASE2')
3.查看结果数据类型(type)
sel type(FROM_BYTES(TO_BYTE(1024),'base16'));
4.TO_BYTE
参数:数字类型值,BYTEINT、SMALLINT、INTEGER、BIGINT
输出:十六进制BYTE类型值,长度由输入类型决定BYTEINT->BYTE(1)、SMALLINT->BYTE(2)、INTEGER->BYTE(4)、BIGINT->BYTE(8)、NULL->NULL
SELECT TO_BYTE(23); //返回BYTE(1)类型,十六进制值17。可以使用sel type(to_byte(23));查看返回值类型
5.TO_BYTES
参数1:instring 要解码的字符串值(VARCHAR or CLOB类型)
参数2:in_encoding 输入的编码格式,ASCII、Base2、Base10、Base16、Base64M
输出 :VARBYTE or BLOB
SELECT CAST (TO_BYTES ('5A', 'base16') as BYTE (16)); //返回'5A-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 '
SELECT TO_BYTES('5A','base16'); //返回'5A'
6.FROM_BYTES
参数1:instring 要编码的二进制字符值(VARBYTE or BLOB)
参数2:out_encoding 输出的编码格式,ASCII、Base2、Base10、Base16、Base64M
输出 :VARCHAR or CLOB(可能为NULL)
SELECT from_bytes('5A1B'XB, 'base16'); //返回'5A1B'
SELECT from_bytes('5A3F'XB, 'ASCII'); //返回'Z\ESC '
SELECT from_bytes('5A1B'XB, 'base10'); //返回''
说明:Base64一种基于64个可打印字符来表示二进制数据的方法,用于传输8Bit字节码的编码方式之一。