와 진수로 각각의 문자열을 변환
,369
SQL> select col1
2 from t23
3/
COL1
--------------------------------------------------------------------------------
32433242324532423244324332393333323833303330333332423246324433303246324232373246
33313245324232463246323832343241324633323245
SQL>
... 필요한 출력을 생성이 같은 SELECT ... 진수로 진수로 변환 할 수있는 'XX'마스크
SQL> select regexp_substr(utl_raw.cast_to_varchar2(col1), '([A-Z0-9]{2})', 1, level)
2 from t23
3 connect by level <= ceil(utl_raw.length(col1)/2)
4/
REGEXP_SUBSTR(UTL_RAW.CAST_TO_VARCHAR2(COL1),'([A-Z0-9]{2})',1,LEVEL)
--------------------------------------------------------------------------------
2C
2B
2E
2B
...
2B
2F
2F
28
24
2A
2F
32
2E
31 rows selected.
SQL>
사용 TO_NUMBER ...
SQL> select to_number(
2 regexp_substr(utl_raw.cast_to_varchar2(col1), '([A-Z0-9]{2})', 1, level)
3 , 'XX')
4 from t23
5 connect by level <= ceil(utl_raw.length(col1)/2)
6/
TO_NUMBER(REGEXP_SUBSTR(UTL_RAW.CAST_TO_VARCHAR2(COL1),'([A-Z0-9]{2})',1,LEVEL),
--------------------------------------------------------------------------------
44
43
46
43
45
44
41
...
마지막으로 배열을 채우고 대량 수집 구문을 사용하여 PL/SQL로 채 웁니다.
create type int_nt as table of integer
/
declare
ints int_nt;
begin
select to_number(
regexp_substr(utl_raw.cast_to_varchar2(col1), '([A-Z0-9]{2})', 1, level)
, 'XX')
bulk collect into ints
from t23
connect by level <= ceil(utl_raw.length(col1)/2);
end;
/
출처
2014-05-25 21:31:09
APC
데이터 및 원하는 출력? – APC
내 원시 데이터는 다음과 같을 것입니다 : 2C2B2E2B2D2C2933283030332B2F2D302F2B272F312E2B2F2F28242A2F322E ... 거기에서 16 진수 값으로 이동하여 44,43,46,43과 같은 배열을 얻고 싶습니다. – Valkyrie