0
從Oracle中的varchar2
獲取字符代碼的正確/最佳方式是什麼?從varchar2獲取字符代碼
我想要一個接受varchar2
作爲參數的函數,並且會返回一個字節序列,它是varchar2
參數中字符的字符代碼。
從Oracle中的varchar2
獲取字符代碼的正確/最佳方式是什麼?從varchar2獲取字符代碼
我想要一個接受varchar2
作爲參數的函數,並且會返回一個字節序列,它是varchar2
參數中字符的字符代碼。
你可以使用內置的dump
function:
select dump('Hello world') from dual;
DUMP('HELLOWORLD')
--------------------------------------------------------
Typ=96 Len=11: 72,101,108,108,111,32,119,111,114,108,100
或者十六進制:
select dump('Hello world', 1016) from dual;
DUMP('HELLOWORLD',1016)
---------------------------------------------------------------------
Typ=96 Len=11 CharacterSet=AL32UTF8: 48,65,6c,6c,6f,20,77,6f,72,6c,64
如果你想字符串的RAW相當於你可以用the utl_i18n.string_to_raw
function:
select utl_i18n.string_to_raw('Hello world') from dual;
UTL_I18N.STRING_TO_RAW('HELLOWORLD')
--------------------------------------------------------------------------------
48656C6C6F20776F726C64
CREATE OR REPLACE
FUNCTION toAscii(s IN VARCHAR2) RETURN VARCHAR2
IS
r VARCHAR2(32767);
BEGIN
FOR i IN 1 .. LENGTH(s) LOOP
r := r||TO_CHAR(ASCII(SUBSTR(s, i, 1)), 'FMXX');
END LOOP;
RETURN r;
END toAscii;
/
SELECT toAscii('ABCxyz') FROM DUAL;
41424378797A
這是相同的答案你可以從內置的''''''''''''''''''''''''''''''''''''''' –