zoukankan      html  css  js  c++  java
  • Oracle Oracle UTL_RAW类

    General Information Source {ORACLE_HOME}/rdbms/admin/utlraw.sql First Available 7.3.4 Constants Name Data Type Value big_endian PLS_INTEGER 1 little_endian PLS_INTEGER 2 machine_endian PLS_INTEGER 3 Dependencies 179 objects

    SELECT name FROM dba_dependencies
    WHERE referenced_name = 'UTL_RAW'
    UNION
    SELECT referenced_name FROM dba_dependencies
    WHERE name = 'UTL_RAW'; Exceptions Error # Name Description VALUE_ERROR ORA-6502 An arithmetic, conversion, truncation, or size-constraint error. Usually raised by trying to cram a 6 character string into a VARCHAR2(5). Required Object Privileges GRANT execute on UTL_RAW GRANT execute ON utl_raw TO UWCLASS;   BIT_AND Perform bitwise logical "and" of the values in raw r1 with raw r2 and return the "anded" result raw utl_raw.bit_and(r1 IN RAW, r2 IN RAW) RETURN RAW; SELECT utl_raw.bit_and('0102F3', 'F30201')
    FROM dual;   BIT_COMPLEMENT Perform bitwise logical "complement" of the values in raw and return the "complement'ed" result raw utl_raw.bit_complement(r IN RAW) RETURN RAW; SELECT utl_raw.bit_complement('0102F3')
    FROM dual;   BIT_OR Perform bitwise logical "or" of the values in raw r1 with raw r2 and return the "or'd" result raw utl_raw.bit_or(r1 IN RAW, r2 IN RAW) RETURN RAW; SELECT utl_raw.bit_or('0102F3', 'F30201')
    FROM dual;   BIT_XOR Perform bitwise logical "exclusive or" of the values in raw r1 with raw r2 and return the "xor'd" result raw utl_raw.bit_xor(r1 IN RAW, r2 IN RAW) RETURN RAW; SELECT utl_raw.bit_xor('0102F3', 'F30201')
    FROM dual;   CAST_FROM_BINARY_DOUBLE Return the RAW representation of a binary_double value utl_raw.cast_from_binary_double(n IN BINARY_DOUBLE,
    endianess IN PLS_INTEGER DEFAULT 1) RETURN RAW; SELECT utl_raw.cast_from_binary_double(123.45)
    FROM dual;   CAST_FROM_BINARY_FLOAT Return the RAW representation of a binary_float value utl_raw.cast_from_binary_float(n IN BINARY_FLOAT,
    endianess IN PLS_INTEGER DEFAULT 1) RETURN RAW; SELECT utl_raw.cast_from_binary_float(123.45)
    FROM dual;   CAST_FROM_BINARY_INTEGER Return the RAW representation of a binary_integer value utl_raw.cast_from_binary_integer(
    n         IN BINARY_INTEGER,
    endianess IN PLS_INTEGER DEFAULT 1) RETURN RAW; SELECT utl_raw.cast_from_binary_integer(100)
    FROM dual;   CAST_FROM_NUMBER Returns the binary representation of a NUMBER in RAW utl_raw.cast_from_number(n IN NUMBER) RETURN RAW; SELECT utl_raw.cast_from_number(100)
    FROM dual;   CAST_TO_BINARY_DOUBLE Perform a casting of the binary representation of the raw into a binary_double. cast_to_binary_double(
    r         IN RAW,
    endianess IN PLS_INTEGER DEFAULT 1) RETURN BINARY_DOUBLE; SELECT utl_raw.cast_to_binary_double('405EDCCCCCCCCCCD')
    FROM dual;   CAST_TO_BINARY_FLOAT Perform a casting of the binary representation of the raw into a binary_float utl_raw.cast_to_binary_float(
    n         IN BINARY_FLOAT,
    endianess IN PLS_INTEGER DEFAULT 1) RETURN RAW; SELECT utl_raw.cast_to_binary_float('42F6E666')
    FROM dual;   CAST_TO_BINARY_INTEGER Perform a casting of the binary representation of the raw into a binary integer utl_raw.cast_to_binary_integer(
    r         IN RAW,
    endianess IN PLS_INTEGER DEFAULT 1) RETURN BINARY_INTEGER; SELECT utl_raw.cast_to_binary_integer('00000064')
    FROM dual;   CAST_TO_NUMBER Perform a casting of the binary representation of the number (in RAW) into a NUMBER utl_raw.cast_to_number(r IN RAW) RETURN NUMBER; SELECT utl_raw.cast_to_number('C202')
    FROM dual;   CAST_TO_NVARCHAR2
    Converts a RAW represented using n data bytes into NVARCHAR2 with n data bytes utl_raw.cast_to_nvarchar2(r IN RAW) RETURN NVARCHAR2; set serveroutput on

    BEGIN
    FOR i IN 100..200 LOOP
    dbms_output.put_line(
    utl_raw.cast_to_nvarchar2(TO_CHAR(i)));
    END LOOP;
    END;
    /   CAST_TO_RAW Converts a VARCHAR2 represented using n data bytes into a RAW with n data bytes utl_raw.cast_to_raw(r IN RAW) RETURN RAW; SELECT utl_raw.cast_to_raw('ABC')
    FROM dual;   CAST_TO_VARCHAR2 To extract a substring from a BLOB using a PL/SQL program use dbms_lob.substr(). The problem is that it returns a string in hexadecimal characters. CAST_TO_VARCHAR2 turns the hexadecimal string into readable ascii format. utl_raw.cast_to_nvarchar2(r IN RAW) RETURN VARCHAR2; set serveroutput on

    BEGIN
    FOR i IN 100..200 LOOP
    dbms_output.put_line(utl_raw.cast_to_varchar2(TO_CHAR(i)));
    END LOOP;
    END;
    /   COMPARE Compares raw r1 against raw r2. Returns 0 if r1 and r2 are identical, otherwise, returns the position of the first byte from r1 that does not match r2 utl_raw.compare(r1 IN RAW, r2 IN RAW,
    pad IN RAW DEFAULT NULL) RETURN NUMBER; SELECT utl_raw.compare(utl_raw.cast_to_raw('ABC'),
    utl_raw.cast_to_raw('ACC'))
    FROM dual;   CONCAT
    Concatenate a set of 12 raws into a single raw (up to 32K) utl_raw.concat(r1 IN RAW DEFAULT NULL,
    r2  IN RAW DEFAULT NULL,
    r3  IN RAW DEFAULT NULL,
    r4  IN RAW DEFAULT NULL,
    r5  IN RAW DEFAULT NULL,
    r6  IN RAW DEFAULT NULL,
    r7  IN RAW DEFAULT NULL,
    r8  IN RAW DEFAULT NULL,
    r9  IN RAW DEFAULT NULL,
    r10 IN RAW DEFAULT NULL,
    r11 IN RAW DEFAULT NULL,
    r12 IN RAW DEFAULT NULL) RETURN RAW; SELECT utl_raw.concat('A','41','B','42')
    FROM dual;   CONVERT
    Convert raw from one character to a different character set and return the resulting raw utl_raw.convert(
    r            IN RAW,
    to_charset   IN VARCHAR2,
    from_charset IN VARCHAR2) RETURN RAW; DECLARE
    fr_charset CONSTANT VARCHAR2(30) :=
    SUBSTR(SYS_CONTEXT('USERENV', 'LANGUAGE'),
    INSTR(SYS_CONTEXT('USERENV', 'LANGUAGE'),'.')+1);

    to_charset VARCHAR2(30) := 'TR8EBCDIC1026S';
    rawvar     RAW(100);
    BEGIN
    dbms_output.put_line(fr_charset);
    dbms_output.put_line(to_charset);

    rawvar := utl_raw.convert(UTL_RAW.CAST_TO_RAW('Morgan'),
    'AMERICAN_AMERICA.'||to_charset,
    'AMERICAN_AMERICA.'||fr_charset);

    dbms_output.put_line(rawvar);
    END;
    /   COPIES Return n copies of r concatenated together utl_raw.copies(r IN RAW, n IN NUMBER) RETURN RAW; SELECT utl_raw.copies('A', 6)
    FROM dual;   LENGTH Return the length in bytes of a raw utl_raw.length(r IN RAW) RETURN NUMBER; SELECT utl_raw.length('ABC')
    FROM dual;   OVERLAY Overlay the specified portion of target raw with overlay raw, starting from byte position pos of target and proceeding for len bytes utl_raw.overlay(overlay_str IN RAW, target IN RAW,
    pos IN BINARY_INTEGER DEFAULT 1,
    len IN BINARY_INTEGER DEFAULT NULL,
    pad IN RAW DEFAULT NULL) RETURN RAW; SELECT utl_raw.overlay('1', 'AAABBBCCC', 4)
    FROM dual;   REVERSE Reverse a byte sequence in raw r from end to end utl_raw.reverse(r IN RAW) RETURN RAW; SELECT utl_raw.reverse('123')
    FROM dual;   SUBSTR
    Return a substring portion of raw r beginning at pos for len bytes utl_raw.substr(r IN RAW,
    pos IN BINARY_INTEGER,
    len IN BINARY_INTEGER DEFAULT NULL) RETURN RAW; set serveroutput on

    DECLARE
    tmp  VARCHAR2(250) := '';
    vraw RAW(200) := utl_raw.cast_to_raw('ABCDEABCDEABCDE');
    BEGIN
    FOR i IN 1 .. 15 LOOP
    tmp := tmp|| '0x' || utl_raw.substr(vraw, i, 1) || ' ';
    dbms_output.put_line(tmp);
    END LOOP;
    END;
    /   TRANSLATE
    Translate the bytes in the input r raw according to the bytes in the translation raws, from_set and to_set utl_raw.translate(r IN RAW, from_set IN RAW, to_set IN RAW)
    RETURN RAW; CREATE OR REPLACE FUNCTION trans_demo(pin IN VARCHAR2)
    RETURN VARCHAR2 IS
    r_in  RAW(2000);
    r_out RAW(2000);
    r_ul  RAW(64);
    r_lu  RAW(64);
    BEGIN
    r_in := utl_raw.cast_to_raw(pin);
    r_ul := utl_raw.cast_to_raw('ABCDEFabcdef');
    r_lu := utl_raw.cast_to_raw('abcdefABCDEF');

    r_out := utl_raw.translate(r_in , r_ul, r_lu);

    return(utl_raw.cast_to_varchar2(r_out));
    END trans_demo;
    /

    SELECT trans_demo('FaDe') FROM dual;
    SELECT trans_demo('FAde') FROM dual;   TRANSLITERATE
    Transliterate the bytes in the input r raw according to the bytes in the transliteration raws, from_set and to_set utl_raw.transliterate(r IN RAW, to_set IN RAW DEFAULT NULL,
    from_set IN RAW DEFAULT NULL, pad IN RAW DEFAULT NULL)
    RETURN RAW; CREATE OR REPLACE FUNCTION tl_demo(pin IN VARCHAR2)
    RETURN VARCHAR2 IS
    r_in  RAW(2000);
    r_out RAW(2000);
    r_up  RAW(64);
    r_lo  RAW(64);
    r_un  RAW(64) := utl_raw.cast_to_raw('_');
    BEGIN
    r_in := utl_raw.cast_to_raw(pin);
    r_up := utl_raw.cast_to_raw('ABCDEF. ');
    r_lo := utl_raw.cast_to_raw('abcdef');

    r_out := utl_raw.transliterate(r_in , r_lo, r_up, r_un);

    return(utl_raw.cast_to_varchar2(r_out));
    END tl_demo;
    /

    SELECT tl_demo('AB C.D') FROM dual;   XRANGE
    Returns a raw containing all valid 1-byte encodings in succession beginning with the value start_byte and ending with the value end_byte. utl_raw.xrange(start_byte IN RAW DEFAULT NULL,
    end_byte IN RAW DEFAULT NULL) RETURN RAW; SELECT utl_raw.xrange(utl_raw.cast_to_raw('A'),
    utl_raw.cast_to_raw('Z'))
    FROM dual;

    SELECT utl_raw.xrange(utl_raw.cast_to_raw('0A'),
    utl_raw.cast_to_raw('Z'))
    FROM dual;
  • 相关阅读:
    使用命令行创建制作 MACOS HIGH SIERRA 正式版 USB 安装盘
    IONIC2/3解决文本框获取焦点的问题
    一步一步实现IONIC2/3 热更新
    IONIC打包安卓遇到COM.ANDROID.SUPPORT:SUPPORT-V4错误的解决办法
    js hoisting
    js立即执行函数
    关于js sort排序方法
    js基础--substr()和substring()的区别
    关于align-items和align-content的区别和使用场景
    关于ionic开发中遇到的坑与总结
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400236.html
Copyright © 2011-2022 走看看