首先long raw从Oracle 10g开始就不再被建议使用,建议用blob代替。同理,long建议用clob代替。

本文从运维角度实验long raw 和 blob两种数据类型在遇到dblink时的一些差异。

1.构造实验环境

在A库jingyu用户下创建两张表:

--LONG RAW
create table T_TEST_LONGRAW(
id number,
text long raw
); --BLOB
create table T_TEST_BLOB(
id number,
text BLOB
);

然后使用plsql工具在两张表分别插入一条相同的数据:id=1;text=某个二进制小程序。

2.通过dblink查询

在B库通过dblink访问A库的两张表:

SELECT * FROM jingyu.T_TEST_LONGRAW@ttslink;
可以正常查询。 SELECT * FROM jingyu.T_TEST_BLOB@ttslink;
ERROR:
ORA-22992: cannot use LOB locators selected from remote tables

可以看到,long raw数据类型的表可以正常查询,blob数据类型的却会报错:ORA-22992。

3.通过dblink建表

如果想在B库依据A库的两张表创建测试表:

create table T_TEST_LONGRAW as select * from jingyu.T_TEST_LONGRAW@ttslink;
ORA-00997: illegal use of LONG datatype create table T_TEST_BLOB as SELECT * FROM jingyu.T_TEST_BLOB@ttslink;
Table created.

可以看到,和步骤2中的测试不同,long raw数据类型的表无法被创建,报错:ORA-00997。

而blob数据类型的表却可以正常创建。

4.通过导出导入方式迁移

可以通过exp/imp或者expdp/impdp来导出导入对应的表:

--exp / imp
exp \'/ as sysdba\' file=longraw.dmp tables=jingyu.t_test_longraw log=longraw.log
imp \'/ as sysdba\' file=longraw.dmp full=y log=imp_longraw.log exp \'/ as sysdba\' file=blob.dmp tables=jingyu.t_test_blob log=blob.log
imp \'/ as sysdba\' file=blob.dmp full=y log=imp_blob.log --expdp / impdp
expdp \'/ as sysdba\' directory=XTTS dumpfile=longraw.dmp tables=jingyu.t_test_longraw,jingyu.t_test_blob logfile=longraw.log impdp \'/ as sysdba\' directory=XTTS dumpfile=longraw.dmp full=y logfile=impdp_longraw.log

测试两种方式都可以正常导出导入。

总结:很简单的一个小实验,只是发现二者在dblink查询和依据dblink建表时,表现完全相反,蛮有趣的,特此记录一下。

另外,如果将实验中long raw和blob分别替换为long和clob去构造实验(插入的数据就是字符型),现象一样就不再赘述。

实验long raw 和 blob两种数据类型遇到dblink的表现的更多相关文章

  1. js的两种数据类型

    js中的数据类型总体来说分为两种,他们分别是: 1 值类型(基本类型):数值型(Number),字符类型(String),布尔值型(Boolean),null 和 underfined 2 引用类型( ...

  2. springmvc和servlet在上传和下载文件(保持文件夹和存储数据库Blob两种方式)

    参与该项目的文件上传和下载.一旦struts2下完成,今天springmvc再来一遍.发现springmvc特别好包,基本上不具备的几行代码即可完成,下面的代码贴: FileUpAndDown.jsp ...

  3. 使geoJSONLayer能够加载两种数据类型的geojson数据

    问题描述 在使用geoJSONLayer加载geojson数据时,官方文档只支持单一类型的geojson数据加载,当一个geojson数据中出现两种类型的数据时可以尝试一下方法进行解决 本场景为:点击 ...

  4. C#两种数据类型

    C#的两种类据类型:值类型和引用类型   什么是值类型,什么是引用类型 概念:值类型直接存储其值,而引用类型存储对其值的引用.部署:托管堆上部署了所有引用类型. 引用类型:基类为Objcet 值类型: ...

  5. JS分两种数据类型,你都知道吗?

    大牛请无视此篇! JS主要分基本数据类型和引用数据类型,这两者区别可大了,此篇看完必有长进,下面进入正题 首先我们看下什么是基本数据类型(概念我就不说了,直接上代码): var i = 10: var ...

  6. JS中的两种数据类型以及实现引用类型的深拷贝

    一.前言 我们知道,在JS中数据类型按照访问方式和存储方式的不同可分为基本类型和引用类型.基本类型基本类型有String.Boolean.Number,Undefined.Null,这些基本类型都是按 ...

  7. 2 万字 + 20张图| 细说 Redis 九种数据类型和应用场景

    作者:小林coding 计算机八股文网(操作系统.计算机网络.计算机组成.MySQL.Redis):https://xiaolincoding.com 大家好,我是小林. 我们都知道 Redis 提供 ...

  8. Python中的几种数据类型

    大体上把Python中的数据类型分为如下几类:   Number(数字) 包括int,long,float,complex String(字符串) 例如:hello,"hello" ...

  9. 前端跨域问题相关知识详解(原生js和jquery两种方法实现jsonp跨域)

    1.同源策略 同源策略(Same origin policy),它是由Netscape提出的一个著名的安全策略.同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正 ...

随机推荐

  1. JavaScript 引入方式 语言规范 语言基础 数据类型 常用方法 数组 if_else 比较运算符 for while 函数 函数的全局变量和局部变量 {Javascript学习}

    Javascript学习 JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript ...

  2. Chap1:全景图[Computer Science Illuminated]

    参考书目:Dale N . 计算机科学概论(原书第5版)[M]. 机械工业出版社, 2016 from library Chap1:全景图 1.1计算系统 1.2计算的历史 1.3计算工具与计算学科 ...

  3. isinstance与type的区别

    1.isinstance()内置函数 python中的isinstance()函数是python的内置函数,用来判断一个函数是否是一个已知类型.类似type. 2.用法: isinstance(obj ...

  4. spark Pair RDD 基础操作

    下面是Pair RDD的API讲解 转化操作 reduceByKey:合并具有相同键的值: groupByKey:对具有相同键的值进行分组: keys:返回一个仅包含键值的RDD: values:返回 ...

  5. 半屏控制器,view: UIViewController+KNSemiModal

    半屏控制器,view:  UIViewController+KNSemiModal https://github.com/kentnguyen/KNSemiModalViewController

  6. delphi加载ADOQUERY

    CxgridDBTableView3.ClearItems;//这里是cxgrid的表层,先清除之前的列再创建  for I:=0 to adoquery1.FieldCount-1 do  begi ...

  7. day4_高效处理文件

    read()将文件内容从磁盘中全部读出,放到内存,再给cpu处理,性能低,如果文件量大,很容易内存溢出或卡死. 高效方式: 方式一:一般不用的,代码行多 f = open('users.txt','r ...

  8. 内部排序->交换排序->起泡排序

    文字描述 首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(L.r[1].key>L.r[2].key),则将两个记录交换位置,然后比较第二个记录和第三个记录的关键字.依次类推,直 ...

  9. js一次控制 多个style样式

    ]; m.style.cssText='color:green;background:cyan;' 控制多个过渡效果 m.style.transition='opacity 1s ease-in,ba ...

  10. 在Java程序中读写windows共享文件夹

    摘要 使用Java通过JCIFS框架读写共享文件夹,使用SMB协议,并支持域认证. 项目常常需要有访问共享文件夹的需求,例如读取共享文件夹存储的视频.照片和PPT等文件.那么如何使用Java读写Win ...