数据仓库之抽取数据:通过openrowset执行存储过程
Posted lonelyxmas
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据仓库之抽取数据:通过openrowset执行存储过程相关的知识,希望对你有一定的参考价值。
原文:数据仓库之抽取数据:通过openrowset执行存储过程
在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进行转换,最后把经过处理的干净的数据加载到数据仓库中。
目标数据库是sql server,通过openrowset函数调用存储过程,但是存储过程中不能带参数。
1、开启即席查询
- --修改高级参数
- sp_configure ‘show advanced options‘,1
- go
- --允许即席分布式查询
- sp_configure ‘Ad Hoc Distributed Queries‘,1
- go
- --如果配置的值不在合理范围(在最小值最大值范围内),那么可以强制覆盖
- reconfigure with override
- go
2、调用存储过程
这种用法最大的好处时,能把存储过程执行的结果select 出来,如果前面写上insert ,就可以插入到表中,非常方便。
但是局限性也很明晰,就是存储过程不能带参数。
在用openrowset函数时,注意参数格式,以及参数之间的字符的格式。
- SELECT *
- FROM OPENROWSET(‘SQLOLEDB‘,
- ‘Server=PC0627JVCMSSQLSERVER2008;Trusted_Connection=yes;database=master‘,
- ‘exec sp_lock‘)
-
- SELECT *
- FROM OPENROWSET(‘SQLOLEDB‘,
- ‘Server=PC0627JVCMSSQLSERVER2008;uid=sa;pwd=xxx;‘,
- ‘exec master.dbo.sp_lock‘)
以上是关于数据仓库之抽取数据:通过openrowset执行存储过程的主要内容,如果未能解决你的问题,请参考以下文章