大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在使用oracle的时候,经常会遇到类似CLOB、NLOB、BLOB等大数据类型字段,但是当你想要导出含有该字段类型的数据时,会发现导出来该列字段的数据都显示成了CLOB类型。那么如何处理呢?
超过十多年行业经验,技术领先,服务至上的经营模式,全靠网络和口碑获得客户,为自己降低成本,也就是为客户降低成本。到目前业务范围包括了:成都网站建设、成都做网站,成都网站推广,成都网站优化,整体网络托管,微信小程序开发,微信开发,成都app软件开发,同时也可以让客户的网站和网络营销和我们一样获得订单和生意!
1.实际上处理CLOB字段的时候,直接TO_CHAR,当长度超过4000的时候,会报错,提示列被截取;
2.直接使用SUBSTR对CLOB字段进行截取,是不能起到任何作用的;
3.可以使用dbms_lob.substr(clobcolumn,4000),对CLOB字段进行截取;截取的长度是4000还是2000根据存储的是汉字和数据决定长度;
————————————————
版权声明:本文为CSDN博主「独家记忆0408」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:
可用sqlplus的方式
先在某文件夹下(我就直接以C盘根目录为例了)
创建main.sql文件
内容如下
set linesize 200
set term off verify off feedback off pagesize 0
set head off
set trimout on
set trimspool on
spool aaa.txt
@export.sql
spool off
exit
其中aaa.txt是你要保存的文件名,这里貌似不能导成excel,只可以保存成csv格式,然后你再自己转换吧,文本是没问题的,其中@export.sql 是另一个文件,内容如下
你要想把数据导成以逗号分隔
脚本这么写
我就简单以emp表为例了,也是用的to_char函数,只要语句写正确就OK
select empno||','||to_char(hiredate,'yyyy-mm-dd') from emp;
结尾必须用分号
把这个保存成export.sql文件
然后cmd进到你要执行的文件夹下
sqlplus 用户名/密码 @main
然后无限的等待,等到把你的文件导成
你将来要是要把文件导入到哪的话,可以用sqlloader
这个网上教程很多
哎,打字这个累呀
和linux无关,用exp命令就可以实现
导出一个表中的部分数据,使用QUERY参数,如下
导出select * from test where object_id50000这个条件中的数据
exp charsi/charsi@testdb tables=(TEST) query="'where object_id50000'" file=aaa.dmp log=aaa.log
其他参数含义:
GRANTS:指定是否导出对象的授权信息,默认参数为Y,即默认导出
INDEXES:指定是否导出表的索引,默认为Y
CONSTRAINTS:指定是否导出标的约束,默认为Y
TRIGGERS:指定是否导出与表相关的触发器,默认为Y
FILESIZE:如果生成的dump文件超过指定的,需要使用FILE参数指定多个文件
BUFFER:用来指定执行导出时,处理数据所用的缓存区大小,以字节为单位.这个参数变相用来控制导出时记录数组单次最大能加载的记录数.
RECORDLENGTH:该参数用来指定Export的I/O buffer,以字节为单位,最大不超过65535
1.完整的导出整个数据库表结构即dmp文件方法:
Tools--Export
Tables
,选择Oracle
Export
默认选项即可,在Output
file选择一个输出目标
点击Export,即可导出表结构
2.导出表中数据:
Tools--Export
Tables
:选择SQL
Inserts
遇到大字段(clob,blob)会出问题导不出来,在此可以
选择需要导出的表,在Output
file中选择导出的目标,点击Export即可导出,在此有几个选项
可以去掉所有的可选项直接导出
3.导出数据库中所有的或是所选表的数据库建表脚本:
Tools--Export
User
Objects去掉下面三个include
*可选项,选择Single
file)在Output
file
中选择输出目标,点击Export即可
我的建议是 新建一张新表
create table 用户.tablebak as select a, b from 用户.table
然后通过exp或者expdp导出新建的这张表
希望能帮助你!