#이진 문자열 : RAW 타입

  • 오라클에 텍스트뿐만 아니라 이진 데이터도 저장 가능
  • RAW 타입은 디스크에 저장되는 측면에서 VARCHAR2 와 비슷함 (가변길이)
  • 최대 2000 바이트
Demo#1 (RAW 타입)
{code:sqlborderStyle=solid}
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>

|