[Oracle] LONG RAW로 저장된 데이터를 평문(VARCHAR2)으로 조회하는 방법.

2024. 6. 25. 15:23Database/oracle

728x90
728x90

LONG RAW ?

  • Oracle 데이터베이스에서 대량의 바이너리 데이터를 저장하는 데 사용되는 데이터 타입.
  • 이미지, 동영상, 오디오, 문서 ... 등의 바이너리 데이터를 저장하는 데 적합.
  • LONG RAW는 잘 사용되지 않으며, 더 많은 기능과 유연성을 제공하는 BLOB(Binary Large Object)이 주로 사용됨.

LONG RAW 데이터 조회.

SQL> DESC ALMSTLOG;
...
MSG_DATA                   LONG RAW
…
SQL> SELECT MSG_DATA FROM ALMSTLOG WHERE ROWNUM = 1;

LONG RAW 데이터 조회 결과.

4E3030304E303031323032303131303630313233343536373839414E594C494E4B

PL/SQL 블록을 사용하여 LONG RAW를 VARCHAR2로 변환 및 조회.

SQL> SET SERVEROUTPUT ON SIZE UNLIMITED;
SQL> DECLARE
  v_plain_text VARCHAR2(32767);
BEGIN
  DBMS_OUTPUT.ENABLE(NULL); -- Enable server output with unlimited buffer size
  FOR rec IN (SELECT MSG_DATA FROM ALMSTLOG WHERE ROWNUM = 1) LOOP
    v_plain_text := UTL_RAW.CAST_TO_VARCHAR2(rec.msg_data);
    DBMS_OUTPUT.PUT_LINE(v_plain_text);
  END LOOP;
END;
/

평문(VARCHAR2)으로 변환된 데이터 조회 결과.

N000N001202011060123456789ANYLINK
PL/SQL 프로시저가 성공적으로 완료되었습니다.
728x90
728x90