概述
由于执行insert语句或用datastudio工具进行表级别的数据导入,当数据在几万条时就会很慢,所以通过查询相关文档,发现sybaseiq提供加载器支持数据导入,几万条数据也只需要几秒钟时间。故本文整理了Sybase数据库调用加载器的命令和参数设置,以及导出数据文件的常用命令。
一、从Sybase数据库导出数据
方法一:默认逗号分隔符
导出数据文件到本地sybase客户端安装文件夹。
语法:select * from 表名># 文件名.txt;
数据默认以逗号分隔,字符串在单引号内。
方法二:自行设置分隔符
在sysbase服务器所在的linux系统终端,执行如下命令,导出数据文件到linux服务器上。也可以像方法一一样,在sybase客户端工具上执行,生成的数据文件在linux服务器上。
语法:
1. 在终端连接sybase数据库,填写库名、用户名、密码。
dbisql -c "eng=xxxxiq_zh;uid=xxxx;pwd=xxxx "-nogui
2.设置字段间分隔符
(sgms)> set temporary optionTemp_Extract_Column_Delimiter = '&%';
3. 设置导出数据的文件名
(sgms)> set temporary option Temp_Extract_Name1 ='TABLE_NAME.txt';
4.执行导出数据的sql脚本
(sgms)> select * from TABLE_NAME;--执行导出数据的脚本
5.关闭导出操作
(sgms)> set temporary optionTemp_Extract_Name1 = '';
二、将数据从文件导入到Sybase数据库
1. 将数据文件上传到linux服务器,数据库安装路径下。
2. 在sybase客户端执行如下命令进行导入操作
导入用方法一导出的数据文件,注意:换行标志为 \x0d
LOAD TABLE TABLE_NAME(DATA_ID',',COL1',',COL2',',COL3',',COL4',',COL5'\x0d')from 'TABLE_NAME.txt' quotes off escapes off format 'ascii' gocommit;
导入用方法二导出的数据文件,注意:换行标志为 \x0a
LOAD TABLE TABLE_NAME(DATA_ID'&%',COL1'&%',COL2'&%',COL3'&%',COL4'&%',COL5'\x0a')from 'TABLE_NAME.txt' quotes off escapes off format 'ascii' gocommit;
3. 导入命令参数说明
escapes on --on表示斜杠后面的内容认为是特殊字符,off代表相反含义。
quotes on --on表示引号认为不是字符串的一部分,off代表相反含义。
notify 100000 --指加载100000条打一次日志。
with checkpoint on --load完将内存中的数据写入磁盘。
format 'ascii' --设置导入数据文件编码格式。
4.生成导入命令脚本
select
'LOADTABLE TABLE_NAME('||
replace(list(column_name),',','''&%'',')
||'''&%\x0a'''
||')from''TABLE_NAME.txt'' quotes off escapes off format ''ascii'' go commit;' sqlcomment
from sp_iqcolumn('TABLE_NAME');
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删