개발자의 끄적끄적

[oracle] 이진 문자열 - RAW 타입 [펌] 본문

개발/sql

[oracle] 이진 문자열 - RAW 타입 [펌]

효벨 2020. 8. 14. 02:00
728x90
반응형

[oracle] 이진 문자열 - RAW 타입 [펌]

 

#이진 문자열 : RAW 타입

 
  • 오라클에 텍스트뿐만 아니라 이진 데이터도 저장 가능
  • RAW 타입은 디스크에 저장되는 측면에서 VARCHAR2 와 비슷함 (가변길이)
  • 최대 2000 바이트

 

Demo#1 (RAW 타입)

SQL> CREATE TABLE T ( RAW_DATA RAW(16) );

Table created.

SQL> INSERT INTO T VALUES ( SYS_GUID() );

1 row created.

SQL> SELECT * FROM T; -- RAW 데이터가 16진수 문자열로 묵시적으로 변환되어 출력됨 (RAWTOHEX)

RAW_DATA
--------------------------------
CE8C521D6B6A92BCE0408FDD1028045A

SQL> SELECT DUMP(RAW_DATA, 16) FROM T;

DUMP(RAW_DATA,16)
--------------------------------------------------------------
Typ=23 Len=16: ce,8c,52,1d,6b,6a,92,bc,e0,40,8f,dd,10,28,4,5a

SQL> INSERT INTO T VALUES ( 'ABCDEF' ); -- 16진수 문자열이 RAW 데이터로 묵시적으로 변환되어 저장됨 (HEXTORAW)

1 row created.

SQL> INSERT INTO T VALUES ( 'ABCDEFGH' );
INSERT INTO T VALUES ( 'ABCDEFGH' )
                             *
ERROR at line 1:
ORA-01465: invalid hex number

SQL> SELECT RAWTOHEX(RAW_DATA) FROM T;

RAWTOHEX(RAW_DATA)
--------------------------------
CE8C521D6B6A92BCE0408FDD1028045A
ABCDEF

SQL> INSERT INTO T VALUES ( HEXTORAW( 'ABCDEF' ) ); -- 명시적 변환

1 row created.

SQL>

 

출처 : http://wiki.gurubee.net/pages/viewpage.action?pageId=26741417

반응형
Comments