| Oracle® Database PL/SQL Packages and Types Reference 11g Release 2 (11.2) Part Number E16760-04 |
|
|
View PDF |
The UTL_RAW package provides SQL functions for manipulating RAW datatypes.
This chapter contains the following topics:
Overview
Operational Notes
This package is necessary because normal SQL functions do not operate on RAWs, and PL/SQL does not allow overloading between a RAW and a CHAR datatype. UTL_RAW also includes subprograms that convert various COBOL number formats to, and from, RAWs.
UTL_RAW is not specific to the database environment, and it may actually be used in other environments. For this reason, the prefix UTL has been given to the package, instead of DBMS.
UTL_RAW allows a RAW "record" to be composed of many elements. By using the RAW datatype, character set conversion will not be performed, keeping the RAW in its original format when being transferred through remote procedure calls.
With the RAW functions, you can manipulate binary data that was previously limited to the hextoraw and rawtohex functions.
Note:
Notes on data types:The PLS_INTEGER and BINARY_INTEGER data types are identical. This document uses BINARY_INTEGER to indicate data types in reference information (such as for table types, record types, subprogram parameters, or subprogram return values), but may use either in discussion and examples.
The INTEGER and NUMBER(38) data types are also identical. This document uses INTEGER throughout.
Table 231-1 UTL_RAW Package Subprograms
| Subprogram | Description |
|---|---|
|
Performs bitwise logical "and" of the values in |
|
|
Performs bitwise logical "complement" of the values in |
|
|
Performs bitwise logical "or" of the values in |
|
|
Performs bitwise logical "exclusive or" of the values in |
|
|
Returns the |
|
|
Returns the |
|
|
Returns the |
|
|
Returns the |
|
|
Casts the |
|
|
Casts the |
|
|
Casts the |
|
|
Casts the |
|
|
Converts a |
|
|
Converts a |
|
|
Converts a |
|
|
Compares |
|
|
Concatenates up to 12 |
|
|
Converts |
|
|
Returns |
|
|
Returns the length in bytes of a |
|
|
Overlays the specified portion of target |
|
|
Reverses a byte sequence in |
|
|
Returns |
|
|
Translates the bytes in the input |
|
|
Converts the bytes in the input |
|
|
Returns a |
This function performs bitwise logical "and" of the values in RAW r1 with RAW r2 and returns the "anded" result RAW.
Syntax
UTL_RAW.BIT_AND ( r1 IN RAW, r2 IN RAW) RETURN RAW;
Pragmas
pragma restrict_references(bit_and, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-2 BIT_AND Function Parameters
| Parameter | Description |
|---|---|
|
|
|
|
|
|
Return Values
Table 231-3 BIT_AND Function Return Values
| Return | Description |
|---|---|
|
|
Containing the "and" of |
|
|
Either |
Usage Notes
If r1 and r2 differ in length, the and operation is terminated after the last byte of the shorter of the two RAWs, and the unprocessed portion of the longer RAW is appended to the partial result. The result length equals the longer of the two input RAWs.
This function performs bitwise logical "complement" of the values in RAW r and returns the complement'ed result RAW. The result length equals the input RAW r length.
Syntax
UTL_RAW.BIT_COMPLEMENT ( r IN RAW) RETURN RAW;
Pragmas
pragma restrict_references(bit_complement, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-4 BIT_COMPLEMENT Function Parameters
| Parameter | Description |
|---|---|
|
|
|
Return Values
Table 231-5 BIT_COMPLEMENT Function Return Values
| Return | Description |
|---|---|
|
|
The "complement" of |
|
|
If |
This function performs bitwise logical "or" of the values in RAW r1 with RAW r2 and returns the or'd result RAW.
Syntax
UTL_RAW.BIT_OR ( r1 IN RAW, r2 IN RAW) RETURN RAW;
Pragmas
pragma restrict_references(bit_or, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-6 BIT_OR Function Parameters
| Parameters | Description |
|---|---|
|
|
|
|
|
|
Return Values
Table 231-7 BIT_OR Function Return Values
| Return | Description |
|---|---|
|
|
Containing the "or" of |
|
|
Either |
Usage Notes
If r1 and r2 differ in length, then the "or" operation is terminated after the last byte of the shorter of the two RAWs, and the unprocessed portion of the longer RAW is appended to the partial result. The result length equals the longer of the two input RAWs.
This function performs bitwise logical "exclusive or" of the values in RAW r1 with RAW r2 and returns the xor'd result RAW.
Syntax
UTL_RAW.BIT_XOR ( r1 IN RAW, r2 IN RAW) RETURN RAW;
Pragmas
pragma restrict_references(bit_xor, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-8 BIT_XOR Function Parameters
| Parameter | Description |
|---|---|
|
|
|
|
|
|
Return Values
Table 231-9 BIT_XOR Function Return Values
| Return | Description |
|---|---|
|
|
Containing the "xor" of |
|
|
If either |
Usage Notes
If r1 and r2 differ in length, then the "xor" operation is terminated after the last byte of the shorter of the two RAWs, and the unprocessed portion of the longer RAW is appended to the partial result. The result length equals the longer of the two input RAWs.
This function returns the RAW binary representation of a BINARY_DOUBLE value.
Syntax
UTL_RAW.CAST_FROM_BINARY_DOUBLE( n IN BINARY_DOUBLE, endianess IN PLS_INTEGER DEFAULT 1) RETURN RAW;
Pragmas
pragma restrict_references(cast_from_binary_double, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-10 CAST_FROM_BINARY_DOUBLE Function Parameters
| Parameter | Description |
|---|---|
|
|
|
|
|
A |
Return Values
The binary representation of the BINARY_DOUBLE value, or NULL if the input is NULL.
Usage Notes
An 8-byte binary_double value maps to the IEEE 754 double-precision format as follows:
byte 0: bit 63 ~ bit 56 byte 1: bit 55 ~ bit 48 byte 2: bit 47 ~ bit 40 byte 3: bit 39 ~ bit 32 byte 4: bit 31 ~ bit 24 byte 5: bit 23 ~ bit 16 byte 6: bit 15 ~ bit 8 byte 7: bit 7 ~ bit 0
The parameter endianess describes how the bytes of BINARY_DOUBLE are mapped to the bytes of RAW. In the following matrix, rb0 ~ rb7 refer to the bytes in raw and db0 ~ db7 refer to the bytes in BINARY_DOUBLE.
| rb0 | rb1 | rb2 | rb3 | rb4 | rb5 | rb6 | rb7 | |
|---|---|---|---|---|---|---|---|---|
| big_endian | db0 |
db1 |
db2 |
db3 |
db4 |
db5 |
db6 |
db7 |
| little_endian | db7 |
db6 |
db5 |
db4 |
db3 |
db2 |
db1 |
db0 |
In case of machine-endian, the 8 bytes of the BINARY_DOUBLE argument are copied straight across into the RAW return value. The effect is the same if the user has passed big_endian on a big-endian machine, or little_endian on a little-endian machine.
This function returns the RAW binary representation of a BINARY_FLOAT value.
Syntax
UTL_RAW.CAST_FROM_BINARY_FLOAT( n IN BINARY_FLOAT, endianess IN PLS_INTEGER DEFAULT 1) RETURN RAW;
Pragmas
pragma restrict_references(cast_from_binary_float, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-11 CAST_FROM_BINARY_FLOAT Function Parameters
| Parameter | Description |
|---|---|
|
|
|
|
|
A |
Return Values
The binary representation (RAW) of the BINARY_FLOAT value, or NULL if the input is NULL.
Usage Notes
A 4-byte binary_float value maps to the IEEE 754 single-precision format as follows:
byte 0: bit 31 ~ bit 24 byte 1: bit 23 ~ bit 16 byte 2: bit 15 ~ bit 8 byte 3: bit 7 ~ bit 0
The parameter endianess describes how the bytes of BINARY_FLOAT are mapped to the bytes of RAW. In the following matrix, rb0 ~ rb3 refer to the bytes in RAW and fb0 ~ fb3 refer to the bytes in BINARY_FLOAT.
| rb0 | rb1 | rb2 | rb3 | |
|---|---|---|---|---|
| big_endian | fbo | fb1 | fb2 | fb3 |
| little_endian | fb3 | fb2 | fb1 | fb0 |
In case of machine-endian, the 4 bytes of the BINARY_FLOAT argument are copied straight across into the RAW return value. The effect is the same if the user has passed big_endian on a big-endian machine, or little_endian on a little-endian machine.
This function returns the RAW binary representation of a BINARY_INTEGER value.
Syntax
UTL_RAW.CAST_FROM_BINARY_INTEGER ( n IN BINARY_INTEGER endianess IN PLS_INTEGER DEFAULT BIG_ENDIAN) RETURN RAW;
Pragmas
pragma restrict_references(cast_from_binary_integer, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-12 CAST_FROM_BINARY_INTEGER Function Parameters
| Parameter | Description |
|---|---|
|
|
|
|
|
A |
Return Values
The binary representation of the BINARY_INTEGER value.
This function returns the RAW binary representation of a NUMBER value.
Syntax
UTL_RAW.CAST_FROM_NUMBER ( n IN NUMBER) RETURN RAW;
Pragmas
pragma restrict_references(cast_from_number, WNDS, RNDS, WNPS, RNPS);
Parameters
Return Values
The binary representation of the NUMBER value.
This function casts the RAW binary representation of a BINARY_DOUBLE into a BINARY_DOUBLE.
Syntax
UTL_RAW.CAST_TO_BINARY_DOUBLE ( r IN RAW endianess IN PLS_INTEGER DEFAULT 1) RETURN BINARY_DOUBLE;
Pragmas
pragma restrict_references(cast_to_binary_double, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-14 CAST_TO_BINARY_DOUBLE Function Parameters
| Parameter | Description |
|---|---|
|
|
Binary representation of a |
|
|
A |
Return Values
The BINARY_DOUBLE value.
Usage Notes
If the RAW argument is more than 8 bytes, only the first 8 bytes are used and the rest of the bytes are ignored. If the result is -0, +0 is returned. If the result is NaN, the value BINARY_DOUBLE_NAN is returned.
If the RAW argument is less than 8 bytes, a VALUE_ERROR exception is raised.
An 8-byte binary_double value maps to the IEEE 754 double-precision format as follows:
byte 0: bit 63 ~ bit 56 byte 1: bit 55 ~ bit 48 byte 2: bit 47 ~ bit 40 byte 3: bit 39 ~ bit 32 byte 4: bit 31 ~ bit 24 byte 5: bit 23 ~ bit 16 byte 6: bit 15 ~ bit 8 byte 7: bit 7 ~ bit 0
The parameter endianess describes how the bytes of BINARY_DOUBLE are mapped to the bytes of RAW. In the following matrix, rb0 ~ rb7 refer to the bytes in raw and db0 ~ db7 refer to the bytes in BINARY_DOUBLE.
| rb0 | rb1 | rb2 | rb3 | rb4 | rb5 | rb6 | rb7 | |
|---|---|---|---|---|---|---|---|---|
| big_endian | db0 |
db1 |
db2 |
db3 |
db4 |
db5 |
db6 |
db7 |
| little_endian | db7 |
db6 |
db5 |
db4 |
db3 |
db2 |
db1 |
db0 |
In case of machine-endian, the 8 bytes of the RAW argument are copied straight across into the BINARY_DOUBLE return value. The effect is the same if the user has passed big_endian on a big-endian machine, or little_endian on a little-endian machine.
This function casts the RAW binary representation of a BINARY_FLOAT into a BINARY_FLOAT.
Syntax
UTL_RAW.CAST_TO_BINARY_FLOAT ( r IN RAW endianess IN PLS_INTEGER DEFAULT 1) RETURN BINARY_FLOAT;
Pragmas
pragma restrict_references(cast_to_binary_float, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-15 CAST_TO_BINARY_FLOAT Function Parameters
| Parameter | Description |
|---|---|
|
|
Binary representation of a |
|
|
A |
Return Values
The BINARY_FLOAT value.
Usage Notes
If the RAW argument is more than 4 bytes, only the first 4 bytes are used and the rest of the bytes are ignored. If the result is -0, +0 is returned. If the result is NaN, the value BINARY_FLOAT_NAN is returned.
If the RAW argument is less than 4 bytes, a VALUE_ERROR exception is raised.
A 4-byte binary_float value maps to the IEEE 754 single-precision format as follows:
byte 0: bit 31 ~ bit 24 byte 1: bit 23 ~ bit 16 byte 2: bit 15 ~ bit 8 byte 3: bit 7 ~ bit 0
The parameter endianess describes how the bytes of BINARY_FLOAT are mapped to the bytes of RAW. In the following matrix, rb0 ~ rb3 refer to the bytes in RAW and fb0 ~ fb3 refer to the bytes in BINARY_FLOAT.
| rb0 | rb1 | rb2 | rb3 | |
|---|---|---|---|---|
| big_endian | fbo |
fb1 |
fb2 |
fb3 |
| little_endian | fb3 |
fb2 |
fb1 |
fb0 |
In case of machine-endian, the 4 bytes of the RAW argument are copied straight across into the BINARY_FLOAT return value. The effect is the same if the user has passed big_endian on a big-endian machine, or little_endian on a little-endian machine.
This function casts the RAW binary representation of a BINARY_INTEGER into a BINARY_INTEGER.
Syntax
UTL_RAW.CAST_TO_BINARY_INTEGER ( r IN RAW endianess IN PLS_INTEGER DEFAULT BIG_ENDIAN) RETURN BINARY_INTEGER;
Pragmas
pragma restrict_references(cast_to_binary_integer, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-16 CAST_TO_BINARY_INTEGER Function Parameters
| Parameter | Description |
|---|---|
|
|
Binary representation of a |
|
|
A |
Return Values
The BINARY_INTEGER value
This function casts the RAW binary representation of a NUMBER into a NUMBER.
Syntax
UTL_RAW.CAST_TO_NUMBER ( r IN RAW) RETURN NUMBER;
Pragmas
pragma restrict_references(cast_to_number, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-17 CAST_TO_NUMBER function Parameters
| Parameter | Description |
|---|---|
|
|
Binary representation of a |
Return Values
The NUMBER value.
This function converts a RAW value represented using some number of data bytes into an NVARCHAR2 value with that number of data bytes.
Note:
When casting to aNVARCHAR2, the current Globalization Support character set is used for the characters within that NVARCHAR2 value.Syntax
UTL_RAW.CAST_TO_NVARCHAR2 ( r IN RAW) RETURN NVARCHAR2;
Pragmas
pragma restrict_references(cast_to_NVARCHAR2, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-18 CAST_TO_NVARCHAR2 Function Parameters
| Parameter | Description |
|---|---|
|
|
|
Return Values
Table 231-19 CAST_TO_NVARCHAR2 Function Return Values
| Return | Description |
|---|---|
|
|
Containing having the same data as the input |
|
|
If |
This function converts a VARCHAR2 value represented using some number of data bytes into a RAW value with that number of data bytes. The data itself is not modified in any way, but its data type is recast to a RAW data type.
Syntax
UTL_RAW.CAST_TO_RAW ( c IN VARCHAR2) RETURN RAW;
Pragmas
pragma restrict_references(cast_to_raw, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-20 CAST_TO_RAW Function Parameters
| Parameter | Description |
|---|---|
|
|
|
Return Values
Table 231-21 CAST_TO_RAW Function Return Values
| Return | Description |
|---|---|
|
|
Containing the same data as the input |
|
|
If |
This function converts a RAW value represented using some number of data bytes into a VARCHAR2 value with that number of data bytes.
Note:
When casting to aVARCHAR2, the current Globalization Support character set is used for the characters within that VARCHAR2.Syntax
UTL_RAW.CAST_TO_VARCHAR2 ( r IN RAW) RETURN VARCHAR2;
Pragmas
pragma restrict_references(cast_to_VARCHAR2, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-22 CAST_TO_VARCHAR2 Function Parameters
| Parameter | Description |
|---|---|
|
|
|
Return Values
Table 231-23 CAST_TO_VARCHAR2 Function Return Values
| Return | Description |
|---|---|
|
|
Containing having the same data as the input |
|
|
If |
This function compares two RAW values. If they differ in length, then the shorter is extended on the right according to the optional pad parameter.
Syntax
UTL_RAW.COMPARE ( r1 IN RAW, r2 IN RAW, pad IN RAW DEFAULT NULL) RETURN NUMBER;
Pragmas
pragma restrict_references(compare, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-24 COMPARE Function Parameters
| Parameter | Description |
|---|---|
|
|
1st |
|
|
2nd |
|
|
This is an optional parameter. Byte to extend whichever of |
Return Values
Table 231-25 COMPARE Function Return Values
| Return | Description |
|---|---|
|
|
Equals 0 if Equals position (numbered from 1) of the first mismatched byte |
This function concatenates up to 12 RAWs into a single RAW. If the concatenated size exceeds 32K, then an error is returned
Syntax
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;
Pragmas
pragma restrict_references(concat, WNDS, RNDS, WNPS, RNPS);
Parameters
r1....r12 are the RAW items to concatenate.
Return Values
Exceptions
There is an error if the sum of the lengths of the inputs exceeds the maximum allowable length for a RAW, which is 32767 bytes.
This function converts RAW r from character set from_charset to character set to_charset and returns the resulting RAW.
Both from_charset and to_charset must be supported character sets defined to the Oracle server.
Syntax
UTL_RAW.CONVERT ( r IN RAW, to_charset IN VARCHAR2, from_charset IN VARCHAR2) RETURN RAW;
Pragmas
pragma restrict_references(convert, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-27 CONVERT Function Parameters
| Parameter | Description |
|---|---|
|
|
|
|
|
Name of Globalization Support character set to which |
|
|
Name of Globalization Support character set in which |
Return Values
Table 231-28 CONVERT Function Return Values
| Return | Description |
|---|---|
|
|
Byte string |
Exceptions
Table 231-29 CONVERT Function Exceptions
| Error | Description |
|---|---|
|
|
Either: - - - |
This function returns n copies of r concatenated together.
Syntax
UTL_RAW.COPIES ( r IN RAW, n IN NUMBER) RETURN RAW;
Pragmas
pragma restrict_references(copies, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-30 COPIES Function Parameters
| Parameters | Description |
|---|---|
|
|
|
|
|
Number of times to copy the |
Return Values
This returns the RAW copied n times.
Exceptions
Table 231-31 COPIES Function Exceptions
| Error | Description |
|---|---|
|
|
Either: - - - Length of result exceeds maximum length of a |
This function returns the length in bytes of a RAW r.
Syntax
UTL_RAW.LENGTH ( r IN RAW) RETURN NUMBER;
Pragmas
pragma restrict_references(length, WNDS, RNDS, WNPS, RNPS);
Parameters
Return Values
This function overlays the specified portion of target RAW with overlay_str RAW, starting from byte position pos of target and proceeding for len bytes.
Syntax
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;
Pragmas
pragma restrict_references(overlay, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-34 OVERLAY Function Parameters
| Parameters | Description |
|---|---|
|
|
Byte-string used to overlay target |
|
|
Byte-string which is to be overlaid |
|
|
Position in target (numbered from 1) to start overlay |
|
|
The number of target bytes to overlay |
|
|
Pad byte used when overlay |
Defaults and Optional Parameters
Table 231-35 OVERLAY Function Optional Parameters
| Optional Parameter | Description |
|---|---|
|
|
1 |
|
|
To the length of |
|
|
x'00' |
Return Values
Table 231-36 OVERLAY Function Return Values
| Return | Description |
|---|---|
|
|
The target |
Usage Notes
If overlay_str has less than len bytes, then it is extended to len bytes using the pad byte. If overlay_str exceeds len bytes, then the extra bytes in overlay_str are ignored. If len bytes beginning at position pos of target exceeds the length of target, then target is extended to contain the entire length of overlay_str.
If len is specified, it must be greater than or equal to 0. If pos is specified, it must be greater than or equal to 1. If pos exceeds the length of target, then target is padded with pad bytes to position pos, and target is further extended with overlay_str bytes.
Exceptions
Table 231-37 OVERLAY Function Exceptions
| Error | Description |
|---|---|
|
|
Either: - - Target is missing or undefined - Length of target exceeds maximum length of a - - |
This function reverses a byte sequence in RAW r from end to end. For example, x'0102F3' would be reversed to x'F30201', and 'xyz' would be reversed to 'zyx'.The result length is the same as the input RAW length.
Syntax
UTL_RAW.REVERSE ( r IN RAW) RETURN RAW;
Pragmas
pragma restrict_references(reverse, WNDS, RNDS, WNPS, RNPS);
Parameters
Return Values
Exceptions
This function returns len bytes, starting at pos from RAW r.
Syntax
UTL_RAW.SUBSTR ( r IN RAW, pos IN BINARY_INTEGER, len IN BINARY_INTEGER DEFAULT NULL) RETURN RAW;
Pragmas
pragma restrict_references(substr, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-41 SUBSTR Function Parameters
| Parameter | Description |
|---|---|
|
|
The |
|
|
The byte position in |
|
|
The number of bytes from |
Defaults and Optional Parameters
Table 231-42 SUBSTR Function Exceptions
| Optional Parameter | Description |
|---|---|
|
|
Position |
Return Values
Table 231-43 SUBSTR Function Return Values
| Return | Description |
|---|---|
|
|
Beginning at |
|
|
|
Usage Notes
If pos is positive, then SUBSTR counts from the beginning of r to find the first byte. If pos is negative, then SUBSTR counts backward from the end of the r. The value pos cannot be 0.
If len is omitted, then SUBSTR returns all bytes to the end of r. The value len cannot be less than 1.
Exceptions
Table 231-44 SUBSTR Function Exceptions
| Error | Description |
|---|---|
|
|
|
This function translates the bytes in the input RAW r according to the bytes in the translation RAWs from_set and to_set. If a byte in r has a matching byte in from_set, then it is replaced by the byte in the corresponding position in to_set, or deleted.
Bytes in r, but undefined in from_set, are copied to the result. Only the first (leftmost) occurrence of a byte in from_set is used. Subsequent duplicates are not scanned and are ignored.
Syntax
UTL_RAW.TRANSLATE ( r IN RAW, from_set IN RAW, to_set IN RAW) RETURN RAW;
Note:
Be aware thatto_set and from_set are reversed in the calling sequence compared to TRANSLITERATE.Pragmas
pragma restrict_references(translate, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-45 TRANSLATE Function Parameters
| Parameter | Description |
|---|---|
|
|
|
|
|
|
|
|
|
Return Values
Usage Notes
If to_set is shorter than from_set, the extra from_set bytes have no corresponding translation bytes. Bytes from the input RAW that match any such from_set bytes are not translated or included in the result. They are effectively translated to NULL.
If to_set is longer than from_set, the extra to_set bytes are ignored.
If a byte value is repeated in from_set, the repeated occurrence is ignored.
Note:
Differences from the TRANSLITERATE Function:The from_set parameter comes before the to_set parameter in the calling sequence.
Bytes from r that appear in from_set but have no corresponding values in to_set are not translated or included in the result.
The resulting RAW value may be shorter than the input RAW value.
Note that TRANSLATE and TRANSLITERATE only differ in functionality when to_set has fewer bytes than from_set.
Exceptions
Table 231-47 TRANSLATE Function Exceptions
| Error | Description |
|---|---|
|
|
Either: - - - |
This function converts the bytes in the input RAW r according to the bytes in the transliteration RAWs from_set and to_set. Successive bytes in r are looked up in the from_set, and, if not found, copied unaltered to the result RAW. If found, then they are replaced in the result RAW by either corresponding bytes in the to_set, or the pad byte when no correspondence exists.
Bytes in r, but undefined in from_set, are copied to the result. Only the first (leftmost) occurrence of a byte in from_set is used. Subsequent duplicates are not scanned and are ignored. The result RAW is always the same length as r.
Syntax
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;
Note:
Be aware thatto_set and from_set are reversed in the calling sequence compared to TRANSLATE.Pragmas
pragma restrict_references(transliterate, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-48 TRANSLITERATE Function Parameters
| Parameter | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
1 byte used when to-set is shorter than the |
Defaults and Optional Parameters
Table 231-49 TRANSLITERATE Function Optional Parameters
| Optional Parameter | Description |
|---|---|
|
|
To the |
|
|
x f00' through x fff' |
|
|
x'00' |
Return Values
Usage Notes
If to_set is shorter than from_set, the extra from_set bytes have no corresponding conversion bytes. Bytes from the input RAW that match any such from_set bytes are converted in the result to the pad byte instead.
If to_set is longer than from_set, the extra to_set bytes are ignored.
If a byte value is repeated in from_set, the repeated occurrence is ignored.
Note:
Differences from the TRANSLATE Function:The to_set parameter comes before the from_set parameter in the calling sequence.
Bytes from r that appear in from_set but have no corresponding values in to_set are replaced by pad in the result.
The resulting RAW value always has the same length as the input RAW value.
Note that TRANSLATE and TRANSLITERATE only differ in functionality when to_set has fewer bytes than from_set.
Exceptions
Table 231-51 TRANSLITERATE Function Exceptions
| Error | Description |
|---|---|
|
|
|
This function returns a RAW value containing the succession of one-byte encodings beginning and ending with the specified byte-codes. The specified byte-codes must be single-byte RAW values. If the start_byte value is greater than the end_byte value, then the succession of resulting bytes begins with start_byte, wraps through x'FF' back to x'00', then ends at end_byte.
Syntax
UTL_RAW.XRANGE ( start_byte IN RAW DEFAULT NULL, end_byte IN RAW DEFAULT NULL) RETURN RAW;
Pragmas
pragma restrict_references(xrange, WNDS, RNDS, WNPS, RNPS);
Parameters
Table 231-52 XRANGE Function Parameters
| Parameters | Description |
|---|---|
|
|
Beginning byte-code value of resulting sequence. The default is |
|
|
Ending byte-code value of resulting sequence. The default is |
Return Values