우리가 사용하는 소프트웨어는 제한된 Oracle 기능입니다. 필터를 필터링을 통해 CLOB 필드를 확인함으로써 그것은 특정 값이 있습니다. 일반적으로,외부의 이 소프트웨어 나는 것 같은 것:
DBMS_LOB.SUBSTR(t.new_value) = 'Y'
그러나 이 지원되지 않습니다 그래서 나는 사용하려고 시도하 CAST
대신 합니다. 나가려고 많은 다른 시도 하지만 지금까지 이들은 무엇을 발견:
소프트웨어가 내장된 쿼리 검사/검사기 및 이들은 그것은 잘못된 것으로 보여줍:
DBMS_LOB.SUBSTR(t.new_value)
CAST(t.new_value AS VARCHAR2(10))
CAST(t.new_value AS NVARCHAR2(10))
그러나,이 검사는 받아들이 이러한:
CAST(t.new_value AS VARCHAR(10))
CAST(t.new_value AS NVARCHAR(10))
CAST(t.new_value AS CHAR(10))
불행하게도,도 검사할 수 있는 이러한 것들을 통해 이동,실행하는 경우 쿼리 데이터를 가져올,나 ORA-22835: Buffer too small
사용하는 경우 VARCHAR
나 NVARCHAR
. 나 ORA-25137: Data value out of range
사용하는 경우 CHAR
.
이 있는 다른 방법으로 시도 할 수 있었는지 확인하는 내 CLOB 필드를 특정 값이 있는 경우 데이터를 필터링? 지 않은 경우,문제를 해결하려면 어떻게 해야 하 나의 현재 문제를 해결합니까?
DBMS_LOB.SUBSTR()
그래서 사용할 수 없습니다. 나는 생각이CAST
은 자를 수 있는 문자열기 때문에 우리 또한 사용에 대한 해결책TRUNC
:CAST(CAST(date_field AS VARCHAR(9)) AS DATE)
그것은 작동합니다. 그것은 시간의 부분입니다. 라 우리가 뭔가를 할 수 있는 유사한 오신것을 환영합니다.