我们正在使用的软件有限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)
和它的工作。 它摆脱的时间部分。 我希望我们可以做类似的东西对于这一个。