数据转触时clob字段的处理办法

COPY的本意是实现在两个不同的数据库之间进行复制,所以它需要指定从哪里复制或复制到哪里,由子句FROM或TO来指定;对于目的表,可以存在,也可以不存在,由COPY直接创建,语法如下:
COPY FROM|TO LOGIN CREATE|APPEND|INSERT|REPLACE TABLENAME USING SELECT_STATEMENT
FROM和TO选其中一个,表明是从哪里选择或向哪里复制,如FROM SCOTT/TIGGER@SERVICENAME
CREATE:生成一个新的表,不管表是否存在,如果不存在,则创建,如果存在,则删除后创建;
APPEND:如果目标表不存在就创建;
INSERT:首先要求目的表存在,如果不存在,则报错,此命令仅向表中做插入操作;
REPLACE:在复制前,先将目标表中的数据删除,然后再复制;
USING后的子句是表明数据来源,请看下例:
COPY TO SYSTEM/MANAGER@SERNAME CREATE TABLE2 USING SELECT * FROM TEST1;
注意:
1. 即使只在同一库中复制,也要指明服务名,所以必须建立一个指向本地库的服务;
2. 整个语句应该写在同一行,这不同于一般的SQL语句,是不可以换行的。
3. 要用SET LONG LENGTH来设定每次COPY时对LONG的支持的字节数。如果不做特殊说明,默认值为80,这是不能接受的,可以考虑在COPY过程中最大需要多大,如果想定为2M,则写成:SET LONG 2000000;
建议:如果需要复制的表非常大,可以将SELECT子句上加上WHERE子句限制每次复制的记录数,分几次导入一个大的表是一个不错的主意,因为当大量操作时,对SYSTEM,TEMP,RBS等表空间的要求都非常大,经常会出现导入很长时间后发生因为表空间不足而失败的现象,且由于很多操作属于事务型,所以一旦失败,所有的操作可能均白费。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值