dblink访问 ORA-00997: 非法使用 LONG 数据类型

时间:2014-05-05 13:29:52   收藏:0   阅读:534
在通过dblink去访问一个表的long字段,会报ORA-00997.
例如我要通过dblink访问远端的ELISDATA.POS_TEST_CASE_AMASS表,其中CASE_PARAM_CHAR字段是LONG,那么要做一些转换,才能成功取过来。


通过以下这种方法就可以。

sys.dbms_metadata_util.long2varchar(5000,‘ELISDATA.POS_TEST_CASE_AMASS‘,‘CASE_PARAM_CHAR‘,rowid) CASE_PARAM_CHAR
分别是size,属主表名,列名,rowid

to_lob()也可以,但是会ctas时用会转换了数据类型。

insert into pos_test_case_amass 
select
MODULE_NAME,DEAL_CLASS,DEAL_INTERFACE,CASE_SNO,CASE_AMASS_DATE,CASE_PARAM_BASE,CASE_PARAM_MAP,sys.dbms_metadata_util.long2varchar(5000,‘ELISDATA.POS_TEST_CASE_AMASS‘,‘CASE_PARAM_CHAR‘,rowid)   CASE_PARAM_CHAR,
PK_SERIAL#,CREATED_BY,CREATED_DATE,UPDATED_BY,UPDATED_DATE,RUN_FLAG,USER_NAME,INTERFACE_TYPE,IP,DEAL_TIME
from pos_test_case_amass@elis 
 where deal_class = ‘com.palic.elis.pos.intf.biz.action.ECIFQueryAction.getIsVipByPhoneNumberForIVR‘
and deal_interface = ‘getIsVipByPhoneNumberForIVR‘; 

dblink访问 ORA-00997: 非法使用 LONG 数据类型,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!