更新时间:2024-10-10 GMT+08:00

UTL_RAW

接口介绍

高级功能包UTL_RAW支持的所有接口请参见表1

表1 UTL_RAW

接口名称

描述

UTL_RAW.CAST_FROM_BINARY_INTEGER

将INTEGER类型值转换为二进制表示形式(即RAW类型)。

UTL_RAW.CAST_TO_BINARY_INTEGER

将二进制表示形式的整型值(即RAW类型)转换为INTEGER类型。

UTL_RAW.LENGTH

获取RAW类型对象的长度。

UTL_RAW.CAST_TO_RAW

将VARCHAR2类型值转化为二进制表示形式(即RAW类型)。

RAW类型的外部表现形式是十六进制,内部存储形式是二进制。例如一个RAW类型的数据11001011的表现形式为‘CB’,即在实际的类型转换中输入的是‘CB’。

  • UTL_RAW.CAST_FROM_BINARY_INTEGER

    存储过程CAST_FROM_BINARY_INTEGER将INTEGER类型值转换为二进制表示形式(即RAW类型)。

    UTL_RAW.CAST_FROM_BINARY_INTEGER函数原型为:

    1
    2
    3
    4
    UTL_RAW.CAST_FROM_BINARY_INTEGER (
    n           IN  INTEGER,
    endianess   IN  INTEGER)
    RETURN RAW;
    
    表2 UTL_RAW.CAST_FROM_BINARY_INTEGER接口参数说明

    参数

    描述

    n

    待转成RAW类型的整型数值。

    endianess

    表示字节序的整型值1或2(1代表BIG_ENDIAN,2代表LITTLE-ENDIAN)。

  • UTL_RAW.CAST_TO_BINARY_INTEGER

    存储过程CAST_TO_BINARY_INTEGER将二进制表示形式的整型值(即RAW类型)转换为INTEGER类型。

    UTL_RAW.CAST_TO_BINARY_INTEGER函数原型为:

    1
    2
    3
    4
    UTL_RAW.CAST_TO_BINARY_INTEGER (
    r          IN  RAW,
    endianess  IN  INTEGER)
    RETURN BINARY_INTEGER;
    
    表3 UTL_RAW.CAST_TO_BINARY_INTEGER接口参数说明

    参数

    描述

    r

    二进制表示形式的整型值(即RAW类型)。

    endianess

    表示字节序的整型值1或2(1代表BIG_ENDIAN,2代表LITTLE-ENDIAN)。

  • UTL_RAW.LENGTH

    存储过程LENGTH返回RAW类型对象的长度。

    UTL_RAW.LENGTH函数原型为:

    1
    2
    3
    UTL_RAW.LENGTH(
    r      IN RAW)
    RETURN INTEGER;
    
    表4 UTL_RAW.LENGTH接口参数说明

    参数

    描述

    r

    RAW类型对象

  • UTL_RAW.CAST_TO_RAW

    存储过程CAST_TO_RAW将VARCHAR2类型的对象转换成RAW类型。

    UTL_RAW.CAST_TO_RAW函数原型为:

    1
    2
    3
    UTL_RAW.CAST_TO_RAW(
    c      IN VARCHAR2)
    RETURN RAW;
    
    表5 UTL_RAW.CAST_TO_RAW接口参数说明

    参数

    描述

    c

    待转换的VARCHAR2类型对象

示例

在存储过程中操作RAW数据:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
--
CREATE OR REPLACE PROCEDURE proc_raw
AS
str varchar2(100) := 'abcdef';
source raw(100);
amount integer;
BEGIN
source := utl_raw.cast_to_raw(str);--类型转换
amount := utl_raw.length(source);--获取长度
dbms_output.put_line(amount);
END;
/

调用存储过程:

1
CALL proc_raw();