Sybase中的load table的用法

用sybase iq作为数据仓库的存储,确实有其独特的特点和优势,但是在数据ETL的时候,如果用insert、update方式,速度太慢,大概是2秒钟左右一条数据。好在iq提供了一条load语句来解决这个问题。

load语句的格式:
  LOAD [ INTO ] TABLE [ owner.]table-name [ ( column-name, . . . ) ]
  FROM filename
  [ load-option . . . ]
  [ statistics-limitation-options ]
  load-option :
  CHECK CONSTRAINTS { ON | OFF }
  | COMPUTES { ON | OFF }
  | DEFAULTS { ON | OFF }
  | DELIMITED BY string
  | ESCAPE CHARACTER character
  | ESCAPES { ON | OFF }
  | FORMAT { ASCII | BCP }
  | HEXADECIMAL {ON | OFF}
  | ORDER {ON | OFF}
  | PCTFREE percent-free-space
  | QUOTES { ON | OFF }
  | SKIP integer
  | STRIP { ON | OFF }
  | WITH CHECKPOINT { ON | OFF }   • 如果字段名未出现在字段列表中,则填充NULL、0、空、或者DEFAULT;   存在于输入文件中的字段可以用“filler()”.忽略   • DEFAULTS { ON | OFF } 为ON则字段取缺省值。否则取NULL   • QUOTES { ON | OFF } 缺省为ON ,字段定界符为‘’或者 “”   • DELIMITED BY 选项: 可以单个字符,最多255个字符,例如:制表符   号作分割符号:   ...DELIMITED BY ’nx09’   • SKIP n 忽略前n条记录;   • STRIP ON|OFF 尾空格插入前是否截取;   • WITH CHECKPOINT ON|OFF 缺省为 OFF, 如果设置为ON则,命令完成   后,执行CHECKPOINT 操作。

下面是从一个文本文件load到表F_INN_IA_DAILY_SUM中的语句:

set temporary option date_order=YMD;
Load Table F_INN_IA_DAILY_SUM
(
ORG_SID '+|+',
DEAL_SID '+|+',
ALL_TIME_SID '+|+',
R_COUNT_DIM_SID '+|+',
T_TAX_STOR_COST '+|+',
T_STOR_COST '+|+',
T_STOR_SUM '+|+',
CREATED_DT 'X0A'
)
From '/load_data/F_Inn_IA_Daily_Sum.txt'
ESCAPES OFF
QUOTES OFF
NOTIFY 100000
WITH CHECKPOINT ON;
COMMIT

其中+|+是字段的分隔符,X0A是记录的分隔符,即回车(文本文件中)。

例一:

1,文本文件的内容格式为:

abc|defgh|aaaa|bbbbbb|ccccc|ddddd|eeee|fffF
abc|defgh|aaaa|bbbbbb|ccccc|ddddd|eeee|fffF
abc|defgh|aaaa|bbbbbb|ccccc|ddddd|eeee|fffF

2,load table语句:

Load table  My_Table
(
ORG_SID '|',
DEAL_SID '|',
ALL_TIME_SID '|',
R_COUNT_DIM_SID '|,
T_TAX_STOR_COST '|',
T_STOR_COST '|',
T_STOR_SUM '|',
CREATED_DT '\X0A' --数据文件中每行的换行符(16进制)
)
From '/load_data/loadTest.txt' ---要加载文件的路径
ESCAPES OFF
QUOTES OFF
NOTIFY 100000
WITH CHECKPOINT ON;
COMMIT;

文件以‘|’作为分隔符,每行的换行符以 '\X0A'换行; 通常的换行有'\x0d\x0a'(回车、换行)   或'\x0A' (换行);

load table  语法写入存储过程,然后直接调用存储过程文件即可加载入库;

例二:

1,文本格式为:

20171222|&@001731edae78|&@absent|&@absent|&@001731edae78|&@|
20171222|&@001bb958bc07|&@absent|&@absent|&@001bb958bc07|&@|
20171222|&@001bfc067636|&@absent|&@absent|&@001bfc067636|&@|

2,load table 语句:

set temporary option CONVERSION_ERROR = 'OFF';
load table t_station_match_result(load_dt '|&@' null('\\xd0'),op_station '|&@' null('\\xd0'),ip '|&@' null('\\xd0'),mac '|&@' null('\\xd0'), mobile '|&@|' null(''))
FROM '" + file_path+"'
ESCAPES OFF
QUOTES OFF
NOTIFY 100000
WITH CHECKPOINT ON;
COMMIT;
file_path:txt文件路径(绝对路径)

Sybase中的load table的用法的更多相关文章

  1. Sybase采用load table加载文本数据中的部分字段数据

    LOAD TABLE语句实现从数据文件中装载部分列数据的方法.转载自:https://www.cnblogs.com/lizm166/p/8116475.html(有修改) LOAD TABLE:从数 ...

  2. mysql导入数据load data infile用法

    mysql导入数据load data infile用法 基本语法: load data [low_priority] [local] infile 'file_name txt' [replace | ...

  3. mysql中的load命令使用方法

    使用mysql 中的load 命令,可以将txt 文件中的内容加载到数据库表中 使用mysql 中的load 命令,讲txt 文件中的内容加载到数据库表中,例如,创建table,名称是user,一个字 ...

  4. ASP.NET中的ExecuteNonQuery()方法的用法

    下面我将详细讲解在机房收费系统D层中如何对数据库的增加.删除.修改,最后再来总结一下 ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法: 一.增.删 ...

  5. bcp和load table

    使用BCP和LOAD TABLE联合完成Sybase IQ 的数据导出和导入工作.说明: 表(视图)GN_TEST只有两个字段,TIMEID和MSISDN, 导出时我用'|'作为字段分隔符,'& ...

  6. Spring Data JPA系列3:JPA项目中核心场景与进阶用法介绍

    大家好,又见面了. 到这里呢,已经是本SpringData JPA系列文档的第三篇了,先来回顾下前面两篇: 在第1篇<Spring Data JPA系列1:JDBC.ORM.JPA.Spring ...

  7. alter table的用法

    在数据库开发过程中,除了用得最多的数据库查询外,我们有时也需要去修改数据表的定义,比如在已存在的数据表中新增列和删除列等.这篇文章就总结一下alter table语句的用法. 示例代码如下. USE ...

  8. mysql中isnull,ifnull,nullif的用法

    今天用到了MySql里的isnull才发现他和MSSQL里的还是有点区别,现在简单总结一下: mysql中isnull,ifnull,nullif的用法如下: 1. isnull(expr) 的用法: ...

  9. 如何理解 Linux 中的 load averages

    原文:https://mp.weixin.qq.com/s?src=11&timestamp=1533697106&ver=1047&signature=poqrJFfcNAB ...

随机推荐

  1. diff命令的参数详解和实例

    diff命令参数: diff - 找出两个文件的不同点 总览 diff [选项] 源文件 目标文件 描述 在最简单的情况是, diff 比较两个文件的内容 (源文件 和 目标文件). 文件名可以是 - ...

  2. 设计模式之模板方法模式(Java实现)

    "那个,上次由于我老婆要给我做饭,所以就没有说完就走掉了...这个那个".这次和以前一样,先来开场福利(工厂方法模式已被作者踹下场).由美女抽象工厂介绍一下适用场景~大家欢迎 抽象 ...

  3. 【CSS系列】块级元素和行内元素

    块级元素: 块级元素生成一个元素框,默认会填充其父元素的内容区,旁边不能有其他元素,换句话说,它在元素框之前和之后生成了“分隔符”. 列表项是块级额元素的一个特例,除了表现方式与其他块元素一致,列表项 ...

  4. Mybatis——SQL语句构建器类

    SQL语句构建器类 问题 Java程序员面对的最痛苦的事情之一就是在Java代码中嵌入SQL语句.这么来做通常是由于SQL语句需要动态来生成-否则可以将它们放到外部文件或者存储过程中.正如你已经看到的 ...

  5. <a>标签实现链接和锚点的区别

    如果是实现链接,a标签中必须有href属性,并且属性值是合法的url 如果实现锚点,a标签中必须有name属性,当点击该标签时,会跳转到id同该标签的name值相同的元素处.

  6. rpm方式安装 gitlab centos7

    一.使用RPM安装 - 推荐 官方推荐的下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/ Tips 1 : Centos 7使用el7 ...

  7. 【BZOJ4195】[Noi2015]程序自动分析 并查集

    [BZOJ4195][Noi2015]程序自动分析 Description 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3 ...

  8. 根据Uri获取图片绝对路径,解决Android4.4以上版本Uri转换

    转:http://blog.csdn.net/q445697127/article/details/40537945 /** * 根据Uri获取图片绝对路径,解决Android4.4以上版本Uri转换 ...

  9. C#生成唯一码方法

    一.时间戳方法 private string CreateId() { TimeSpan ts = DateTime.UtcNow - , , , , , , ); return Convert.To ...

  10. mongodb基础应用

    一些概念 一个mongod服务可以有建立多个数据库,每个数据库可以有多张表,这里的表名叫collection,每个collection可以存放多个文档(document),每个文档都以BSON(bin ...