Sql “错误”;ORA-00932:不一致的数据类型:预期-得到BLOB“;in-Join语句
我在执行以下存储过程时遇到问题。Sql “错误”;ORA-00932:不一致的数据类型:预期-得到BLOB“;in-Join语句,sql,database,oracle,join,ora-00932,Sql,Database,Oracle,Join,Ora 00932,我在执行以下存储过程时遇到问题。 当我添加时,我得到错误的ORA-00932:不一致的数据类型:预期-得到BLOB FM.FAXFILE\u BLOB列在下面的存储过程中。FAXFILE\u BLOB是一个BLOB字段。如果删除此字段,一切正常。我不知道为什么会发生这种情况。请帮助…… CREATE OR REPLACE Procedure HCADMIN.Proc_GetFaxDetailsByDate ( FromDate varch
当我添加时,我得到错误的
ORA-00932:不一致的数据类型:预期-得到BLOB
FM.FAXFILE\u BLOB
列在下面的存储过程中。FAXFILE\u BLOB
是一个BLOB字段。如果删除此字段,一切正常。我不知道为什么会发生这种情况。
请帮助……
CREATE OR REPLACE Procedure HCADMIN.Proc_GetFaxDetailsByDate
(
FromDate varchar2 default null,
ToDate varchar2 default null,
FaxNo varchar2 default null,
ClaimNo varchar2 default null,
NspCode varchar2 default null,
PolicyNo varchar2 default null,
HEGICNo varchar2 default null,
cur_faxdetails OUT SYS_REFCURSOR
)
IS
BEGIN
OPEN cur_faxdetails For
Select distinct
FM.RECORDNO_NUM,
FM.CLAIMNO_VAR,
FM.FAXNO_VAR,
FM.FAXSTATUS_VAR,
FM.FAXTYPE_VAR,
FM.USERNAME_VAR,
FM.HEGIC_NO_VAR,
FM.RESEND_NO_NUM,
FM.RESNDCOUNT_NUM,
TO_date(FM.TIMESTAMP_DTE,'dd/MM/yyyy') as "TIMESTAMP_DTE",
FR.RECIPIENTFAXNO_VAR,
FM.FAXFILE_BLOB
From TPA_FAXMASTER FM Left join TPA_FAXRECIPIENT FR on FM.RECORDNO_NUM=FR.RECORDNO_NUM
WHERE
NVL(FM.FAXNO_VAR,'0')=NVL(FaxNo,NVL(FM.FAXNO_VAR,'0')) And
NVL(FR.RECIPIENTFAXNO_VAR,'0')=NVL(FaxNo,NVL(FR.RECIPIENTFAXNO_VAR,'0')) And
NVL(FM.CLAIMNO_VAR,'0')=NVL(ClaimNo,NVL(FM.CLAIMNO_VAR,'0')) And
NVL(FM.NSPID_VAR,'0')=NVL(NspCode,NVL(FM.NSPID_VAR,'0')) And
NVL(FM.POLICYNO_VAR,'0')=NVL(PolicyNo,NVL(FM.POLICYNO_VAR,'0')) And
NVL(FM.HEGIC_NO_VAR,'0')=NVL(HEGICNo,NVL(FM.HEGIC_NO_VAR,'0')) And
(NVL(TO_date(FM.TIMESTAMP_DTE,'dd/MM/yyy'),To_Date('09/09/9999','dd/MM/yyyy'))
BETWEEN NVL (TO_date(FromDate,'dd/MM/yyyy'), NVL(TO_date(FM.TIMESTAMP_DTE,'dd/MM/yyy'),To_Date('09/09/9999','dd/MM/yyyy')))
AND NVL (TO_date(ToDate,'dd/MM/yyyy'), NVL(TO_date(FM.TIMESTAMP_DTE,'dd/MM/yyy'),To_Date('09/09/9999','dd/MM/yyyy'))));
EXCEPTION
WHEN NO_DATA_FOUND THEN
Null;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END;
/
无法指定选择列表是否包含LOB列
尝试使用标量子查询获取BLOB字段。以下限制适用于集合运算符 set运算符受以下限制: 集合运算符对BLOB、CLOB、BFILE类型的列无效, VARRAY或嵌套表。 并集、交集和减号运算符在LONG上无效 列 如果集合运算符前面的选择列表包含表达式, 然后必须为表达式提供列别名,以便 请参阅顺序条款中的内容 也不能使用set运算符指定for_update_子句 不能在这些查询的子查询中指定order_by_子句 接线员 不能在包含表的SELECT语句中使用这些运算符 集合表达式
参考资料。谢谢。这有帮助。但为什么会这样?对LOB有一些限制。可能是因为它们的存储方式与基本数据类型不同。要更深入地了解它,请参考