2017-10-24 10 views
1

UTF8 형식으로 값을 반환하려는 CLOB 필드가있는 쿼리가 있습니다. 다음 쿼리는 필드가 varchar 인 경우 제대로 작동하지만 CLOB 인 경우 올바른 UTF8 문자열을 반환하지 않습니다.Oracle 쿼리에서 CLOB를 UTF8로 변환하는 방법은 무엇입니까?

select convert(field, 'AL32UTF8', 'WE8ISO8859P15') from table; 

쿼리의 CLOB에서 UTF8 문자열을 반환하려면 어떻게합니까?

답변

2

사용 DBMS_LOB 패키지는 예를

select convert(dbms_lob.substr(field,dbms_lob.getlength(field), **0**) 
       'AL32UTF8', 'WE8ISO8859P15') 
from table; 

하기에

을 위해 그것을 고정 :

select convert(dbms_lob.substr(field,dbms_lob.getlength(field)) 
       'AL32UTF8', 'WE8ISO8859P15') 
from table; 
+0

당신의 도움이 니들 파일 주셔서 감사합니다! 하지만 난 항상 필드 값에 반환 된 "null"있어 : ((((db.sqlupdate, dbms_lob.getlength (c.sqlupdate), 0), 'AL32UTF8', 'WE8ISO8859P15' from sql_update c; –

+1

ups. 미안합니다. 3 매개 변수 substr은 1이어야합니다. –

+0

convert (dbms_lob.substr (field, dbms_lob.getlength (field), 1) 'AL32UTF8', 'WE8ISO8859P15') from table; –