问题描述:下边这个代码执行错误,报ora22922错误。 其中YS_DCB11表中有某个字段(dat)为大字段,而DCB11中没有大字段,这两个表都是通过链路访问的。是不是包含大字段的表都不能通过链路访问?
select
A.JH JH
,A.JB JB
,A.CSRQ CSRQ
,A.CSDWDM CSDWDM
,A.JCDM JCDM
,A.YQMC YQMC
,A.YQXH YQXH
,A.YQBH YQBH
,A.JXGJDM JXGJDM
,A.JXGJMC JXGJMC
,A.SJSD SJSD
,A.SCSD SCSD
,A.BZ BZ
,A.LRSJ LRSJ
from YS_DCB11 A left join DCB11 dst_DCB11 on dst_DCB11.JH=A.JH and dst_DCB11.CSRQ=A.CSRQ and dst_DCB11.JXGJDM=A.JXGJDM where dst_DCB11.JH is null and dst_DCB11.CSRQ is null and dst_DCB11.JXGJDM is null;
下边这个执行正确。但不知这两处代码有何区别。
select
A.JH JH
,A.JB JB
,A.CSRQ CSRQ
,A.CSDWDM CSDWDM
,A.JCDM JCDM
,A.YQMC YQMC
,A.YQXH YQXH
,A.YQBH YQBH
,A.JXGJDM JXGJDM
,A.JXGJMC JXGJMC
,A.SJSD SJSD
,A.SCSD SCSD
,A.BZ BZ
,A.LRSJ LRSJ
from YS_DCB11 A , DCB11 B
where B.JH(+)=A.JH
and B.CSRQ(+)=A.CSRQ
and B.JXGJDM(+)=A.JXGJDM
and B.JH is null
and B.CSRQ is null
and B.JXGJDM is null;
select
A.JH JH
,A.JB JB
,A.CSRQ CSRQ
,A.CSDWDM CSDWDM
,A.JCDM JCDM
,A.YQMC YQMC
,A.YQXH YQXH
,A.YQBH YQBH
,A.JXGJDM JXGJDM
,A.JXGJMC JXGJMC
,A.SJSD SJSD
,A.SCSD SCSD
,A.BZ BZ
,A.LRSJ LRSJ
from YS_DCB11 A left join DCB11 dst_DCB11 on dst_DCB11.JH=A.JH and dst_DCB11.CSRQ=A.CSRQ and dst_DCB11.JXGJDM=A.JXGJDM where dst_DCB11.JH is null and dst_DCB11.CSRQ is null and dst_DCB11.JXGJDM is null;
下边这个执行正确。但不知这两处代码有何区别。
select
A.JH JH
,A.JB JB
,A.CSRQ CSRQ
,A.CSDWDM CSDWDM
,A.JCDM JCDM
,A.YQMC YQMC
,A.YQXH YQXH
,A.YQBH YQBH
,A.JXGJDM JXGJDM
,A.JXGJMC JXGJMC
,A.SJSD SJSD
,A.SCSD SCSD
,A.BZ BZ
,A.LRSJ LRSJ
from YS_DCB11 A , DCB11 B
where B.JH(+)=A.JH
and B.CSRQ(+)=A.CSRQ
and B.JXGJDM(+)=A.JXGJDM
and B.JH is null
and B.CSRQ is null
and B.JXGJDM is null;
2、如果需要访问,可以新建立一个全局临时表,插入后再访问,如:
create global temporary table mytmp(col1 clob);
insert into mytmp select col1 from table1@dblink1;
oracle不允许直接通过dblink访问远程表中的lob字段?之前还不知道呢?没环境所以没怎么接触到这个。
学习了。