数据仓库之抽取数据:openrowset函数带bulk操作符的用法
原文:数据仓库之抽取数据:openrowset函数带bulk操作符的用法
在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进行转换,最后把经过处理的干净的数据加载到数据仓库中。
目标数据库是sql server,通过openrowset函数带bulk操作符的用法,导入、导出、更新数据。
带bulk操作符的方式相对于其他方式来说,速度更快。
使用方法:
第1种用法:
openrowset
(
bulk 要加载结果集的文件名,
formatfile = 格式化文件名,
bulk选项
)
第2种用法:
openrowset
(
bulk 文件名,
SINGLE_BLOB | SINGLE_CLOB | SINGLE_NCLOB
)
1、开启即席查询
-
--修改高级参数
-
sp_configure 'show advanced options',1
-
go
-
--允许即席分布式查询
-
sp_configure 'Ad Hoc Distributed Queries',1
-
go
-
--如果配置的值不在合理范围(在最小值最大值范围内),那么可以强制覆盖
-
reconfigure with override
-
go
-
2、第1种用法,把bcp导出的数据,导入数据库中
具体导入数据时,可以先用bcp把表的格式文件倒出来,然后在把数据导进去,这样按照格式自动转化。
-
select *
-
from
-
openrowset(bulk 'c:\calendar.txt', --要读取的文件路径和名称
-
formatfile='c:\calendar.fmt', --格式化文件的路径和名称
-
-
firstrow = 1, --要载入的第一行
-
--lastrow = 1000, --要载入的最后一行,此值必须大于firstrow
-
-
maxerrors = 10, --在加载失败之前加载操作中最大的错误数
-
errorfile ='c:\calendar_error.txt', --存放错误的文件
-
-
rows_per_batch = 100 --每个批处理导入的行数
-
) as calendar
3、第2种用法
-
select 1,
-
BulkColumn --这个是从数据源获取的,要插入的列,默认的列名
-
from openrowset(
-
BULK 'c:\helloworld.class',--指定文件路劲,这里是本地路径
-
SINGLE_BLOB --指定二进制数据是SINGLE_BLOB
-
--指定文本是SINGLE_CLOB、SINGLE_NCLOB
-
)X --必须要别名
-
-
-
select 1,
-
binColumn --引用后面定义的列别名
-
from openrowset(
-
BULK 'c:\Katongxiar01.jpg', --指定文件路劲,这里是本地路径
-
SINGLE_BLOB --指定二进制数据是SINGLE_BLOB
-
--指定文本是SINGLE_CLOB、SINGLE_NCLOB
-
)X(binColumn) --这里还定义了列的别名
把bmp文件直接更新到字段pic中,直接从txt文件查询数据作为1列显示:
-
update t
-
set pic = (
-
select BulkColumn
-
from openrowset(bulk 'c:\dwhj.bmp',
-
SINGLE_BLOB) AS X --一定不要忘了定义别名
-
-
select 1,
-
binColumn --引用后面定义的列别名
-
from openrowset(
-
BULK 'c:\calendar.txt', --指定文件路劲,这里是本地路径
-
SINGLE_CLOB --指定二进制数据是SINGLE_BLOB
-
--指定文本是SINGLE_CLOB、SINGLE_NCLOB
-
)X(binColumn) --这里还定义了列的别名
数据仓库之抽取数据:openrowset函数带bulk操作符的用法的更多相关文章
- 数据仓库之抽取数据:通过openrowset执行存储过程
原文:数据仓库之抽取数据:通过openrowset执行存储过程 在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进 ...
- 数据仓库之抽取数据:通过bcp命令行导入数据
原文:数据仓库之抽取数据:通过bcp命令行导入数据 在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进行转换,最后 ...
- MySQL数据类型转换函数CAST与CONVERT的用法
MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值.两者具体的语法如下: 1.CAST(value as type) 就是CAST(xxx AS 类型) 2 ...
- SQL Server 随机数,随机区间,随机抽取数据rand(),floor(),ceiling(),round(),newid()函数等
在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,像这样的小数在实际应用中用得不多,一般要取随机数都会取随机整数.那就看下面 ...
- Atitit.并发测试解决方案(2) -----获取随机数据库记录 随机抽取数据 随机排序 原理and实现
Atitit.并发测试解决方案(2) -----获取随机数据库记录 随机抽取数据 随机排序 1. 应用场景 1 2. 随机抽取数据原理 1 3. 常用的实现方法:::数据库随机函数 1 4. Mssq ...
- Oracle 10g使用amdu抽取数据文件
环境:OEL 5.7 + Oracle 10.2.0.5 RAC 需求:实验在Oracle 10g环境使用amdu抽取数据库文件 本文主要目的是介绍3个知识点: 1.使amdu可以在oracle 10 ...
- 孤荷凌寒自学python第四十八天通用同一数据库中复制数据表函数最终完成
孤荷凌寒自学python第四十八天通用同一数据库中复制数据表函数最终完成 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天经过反复折腾,最终基本上算 ...
- 孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数
孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天打算完成的是通用的(至少目 ...
- 用openrowset函数操作远程数据库
OPENROWSET 包含访问 OLE DB 数据源中的远程数据所需的全部连接信息.当访问链接服务器中的表时,这种方法是一种替代方法,并且是一种使用 OLE DB 连接并访问远程数据的一次性的.特殊的 ...
随机推荐
- 使用PHP实现查找附近的人
https://zhuanlan.zhihu.com/p/31380780 LBS(基于位置的服务) 查找附近的人有个更大的专有名词叫做LBS(基于位置的服务),LBS是指是指通过电信移动运营商的无线 ...
- ISO/IEC 9899:2011 条款6.2.5——类型
6.2.5 类型 1.存储在一个对象中的值或由一个函数所返回的值的意义由用于访问该对象的表达式的类型来确定.(声明为一个对象的一个标识符是最简单的这种表达式:其类型在标识符的声明中指定.)类型被划分为 ...
- React——相关工具概述
Create a New React App Use an integrated toolchain for the best user and developer experience. This ...
- 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_07-SpringSecurityOauth2研究-Oauth2授权码模式-资源服务授权测试
下面要完成 5.6两个步骤 3.3.4 资源服务授权 3.3.4.1 资源服务授权流程 资源服务拥有要访问的受保护资源,客户端携带令牌访问资源服务,如果令牌合法则可成功访问资源服务中的资 源,如下图 ...
- linux下使用SVN上传项目
linux下使用SVN上传项目 摘自:https://blog.csdn.net/puppet_/article/details/78259591 2017年10月17日 13:51:33 puppe ...
- spark简单文件配置
cd /usr/local/spark/spark-2.2.1-bin-hadoop2.7/conf cp slaves.template slaves cp spark-env.sh.templat ...
- hadoop在windows上的配置文件
core-site.xml <configuration> <property> <name>hadoop.tmp.dir</name> <val ...
- 【C# 开发技巧】 C#中WinForm程序退出方法技巧总结
C#中WinForm程序退出方法技巧总结 一.关闭窗体 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.Ex ...
- Golang 异常/日志处理
1.xerrors 异常 xerrors 包是一个非常棒的设计,不同于往常语言如java/php,因为go的errors只是一个string类型的映射,所以内存占用空间很少.这在golang的核心库和 ...
- 给引入页面的js和css资源加上版本号,防止浏览器缓存资源
最近因为在做前端开发的相关工作,每次发布新版本以后,不到5分钟,测试童鞋一个接一个的抱怨说BUG根本就没有修改,这个时候你说的最多的话就是“清缓存!!清页面缓存!!你没有清缓存!!你清理了页面缓存就对 ...
