2016-09-09 3 views
0

BLOB 데이터 형식을 가진 테이블이 있습니다. BLOB 값을 가져 와서 Varchar2 또는 문자열 텍스트 형식으로 변환하려고했습니다. 아래 코드를 사용하고 있습니다. 예상되는 결과는 varchar2 문자열입니다. 그러나 그것은 내가 읽을 수없는 특수 문자를 반환하고 있습니다. SQL :ORACLE : BLOB를 VARCHAR2로 변환하는 방법

select UTL_RAW.CAST_TO_VARCHAR2(dbms_lob.substr(MY_FIELD_BLOB_TYPE)) 
    from MY_BLOB_TABLE 
    where MY_BLOB_TABLE_ID = 12345 
    ; 

RESULT?????

P C .A I 8기가바이트 ?? 2F ?? MC C :!? 0?? B? N 7I 1M9s? Sα6gvαaγm-, βr2nBm2, Sα4nα1γd, EMα9βq 3 ≤ m ≤ d이다. 3e [수학 식 M1a-n-m '] [수학 식 9] [수학 식 9] [수학 식 9] [수학 식 9] > 9v | ≤ m ≤ n ≤ 9i ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ (2) ≤B ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 안녕하세요 ??? S? t ???> ?? i = p?

+0

가능한 중복 from BLOB from Oracle SQL] (http://stackoverflow.com/questions/828650/how-do-i-get-textual-contents-from-blob-in-oracle-sql) –

+3

그래서 ** 무엇이 ** ** 예상되는 출력? –

+0

BLOB에 무엇을 저장 하시겠습니까? 그 텍스트를 포함 할 필요가없는 이진 데이터 형식입니다 ... – mmmmmpie

답변

1
SELECT utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(UTL_RAW.CAST_TO_VARCHAR2(dbms_lob.substr(MY_FIELD_BLOB_TYPE))))) 
FROM MY_BLOB_TABLE 
WHERE MY_BLOB_TABLE_ID = 12345; 

결과 : P3A/Qz8uYT9JPzhnYj8hPz8yZj8/BWM/Yz86MD86Yj9uPzdpPzFNOXM/Pz8/Uz9h PzZndj9hXT95P20/Py07Pz8/cj8/MM4/Qj8yMD8/P1M/NG4/P2w/JWQ/Pz9FTT85 ID9xPz8/MYA/bT8/ZD8gPz8/M2U/Pz9bPz9NMW8/bj8/P20/PYC/Pz8/OW0/Pz8/ Pz8lP2A/PztuPz8/YT9YPz8/Pz83ID45dj8/P3W/bT8/P24/OWk/Pz80SD8/bz8/ az8/Pz9OPy51Pz8/MnhrPzZ5QD8/Yz9HPz9VPz8/PyNCPz8/Pz8/Pz81fj9HYz8k Pz8/P015P3U /의 P2i/Pz8/Pz8/P1Q/Pz8xZmI/Xz8/az9laz8/P3drIEhpPz8/Uz90 Pz8/Pj8/JMK/CD8/

어떻게 텍스트 내용을받을 수 있나요 [의