打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DBLink中CLOB字段的处理

DBLink中,对于CLOB字段的处理需要相对比较特殊些。

  1. 不做任务处理,例如执行“SELECT MODE_CODE,TRANSFORM_CHANGE_CONTENT from PROD_INTERRUPTION_MODE@LINK2SERVER516 WHERE ROWNUM<=10”,其中“TRANSFORM_CHANGE_CONTENT”为CLOB字段,则会报“ORA-22992: cannot use LOB locators selected from remote tables”的错误。
  2. 采用临时表方式实现对LOB字段的选取:
    创建一个临时表“create global temporary table TMP_TBL_MODE(
    MODE_CODE VARCHAR2(16),
    TRANSFORM_CHANGE_CONTENT CLOB
    )on commit delete rows;”,
    再执行“INSERT INTO TMP_TBL_MODE SELECT MODE_CODE,TRANSFORM_CHANGE_CONTENT from PROD_INTERRUPTION_MODE@LINK2SERVER516;”后,临时表中就将对应的数据选取过来了,最后再通过执行“SELECT * from TMP_TBL_MODE;”,即可查看到结构,验证OK

  3. 采用将CLOB转换为VARCHAR的方式实现:
    首先需要用到函数“dbms_lob.substr( clob_column, for_how_many_bytes, from_which_byte );”
    通过创建如下视图:
    CREATE OR REPLACE VIEW DBLINK_V_MODE_TET AS
      SELECT MODE_CODE, dbms_lob.substr(TRANSFORM_CHANGE_CONTENT,4000,1) TRANSFORM_CHANGE_CONTENT
        FROM PROD_INTERRUPTION_MODE
       WHERE ROWNUM <= 10;
    通过执行“SELECT MODE_CODE,TRANSFORM_CHANGE_CONTENT from DBLINK_V_MODE_TET@LINK2SERVER516;”,即可实现查看到结果,验证OK

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[深入浅出Hibernate笔记] Oracle中的大字段
通过JDBC操纵Oracle数据库LOB字段的分析
Spring 让 LOB 数据操作变得简单易行
DBMS_LOB包使用和维护
spirng 对clob blob数据的处理
Direct IO asm引起css initialization
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服