2016-09-29 2 views
-2

엑센트가 사용 된 열 (BLOB 데이터)이 있습니다. 모든 행에 대해 특정 액센트 (모든 액센트가 아닌 특정 액센트)를 검색하고 싶습니다.엑센트를 원시 데이터로 변환 SQL

내가 쿼리 아래 사용했지만 그것이 작동하지 않는 l'application Data

검색 할 가정하자.

select * 
from "correspondence" s 
where dbms_lob.instr(s."__data", utl_raw.cast_to_raw('l'application Data')) > 0 
and "externalReferenceNumber"like' 20160929%' 
and "callingapplication"=' CVM' 
and rownum < 5 
order by s."__id" desc ; 

도와 주시겠습니까? 아래를 사용하는 것으로도 작동하지 않는 것 같습니다. 당신이 당신의 문자

utl_raw.cast_to_raw('l''application Data') 

오라클의 일환으로 하나를 원하는 경우

utl_raw.cast_to_raw('l || char(146) ||application Data') 
+0

정의 자세한 내용은 여기를 참조하십시오. – mustaccio

+0

행이 반환되지 않습니다. "1"과 무덤 기호 "1"을 제거하면 그 결과는 정확합니다. 따라서 SQl dev은 char (146)를 무덤 기호로 변환 할 수 없거나 varchar2 –

답변

1

당신은 연속으로 두 ' 필요이

utl_raw.cast_to_raw(q'!l'application Data!') 

문자와 같은 대체 따옴표를위한 엉뚱한 구문 q' 이후에 끝까지 일치하는 것이면 무엇이든 될 수 있으며 [<, (또는 "올바른"결말,),> 또는]

는 "작동하지 않습니다"http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm#i42617

The syntax highlighting on SO seems to be mystified by the alternative 2nd syntax :)

+0

Hi Hogan으로 변환 할 수 없습니다. 나는 이것을 시도했지만 " '"는 아포스트로피가 아니라 프랑스 언어로 사용 된 중대한 동의 기호입니다. –

+0

@SombudhyaBasu - 확장 문자 세트를 사용하려면 'N'접두사가 필요합니다. – Hogan

+0

안녕 호간 ( ) utl_raw.cast_to_raw (N''l'application Data ') 이 쿼리는 다음과 같은 오류를 표시합니다 : ORA-00907 : 오른쪽 괄호가 누락되었습니다 –