SSIS 运行Oracle的Tsql

asus00 2013-11-23 10:41:03
现在需要完成一个job,需要从oracle端需要运行一段复杂的sql来获取真正的数据,这段sql包含建表更新等等一系列操作,本来是将这段TSQL变成存储过程放在oracle端 然后由SSIS来调用,但是目前由于权限问题,无法在oracle里面设置存储过程,目前只能由人手工在plsql里面运行。 我试着将用SSIS的Execute SQL Task组件来运行这些组合sql,但是SSIS一直报错。 不知有没有哪位高手有好的解决办法? 实在不想把这些sql分解开来单独运行 那样整个SSIS的过程太长了。
...全文
582 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
天善智能 2013-11-29
  • 打赏
  • 举报
回复
引用 7 楼 asus00 的回复:
SSIS 能运行 .sql的脚本吗 ?
可以的,拖一个执行SQL任务,选择对应的文件类型就可以了
KevinLiu 2013-11-29
  • 打赏
  • 举报
回复
到现在也没看到你的SSIS报了什么错误?别人没办法猜出来的。
asus00 2013-11-28
  • 打赏
  • 举报
回复
SSIS 能运行 .sql的脚本吗 ?
asus00 2013-11-28
  • 打赏
  • 举报
回复
其实我的问题是 如何通过SSIS 直接运行复杂的TSQL ,因为这些sql不能保存到oracle的存储过程中。oracle的连接不是问题, 我使用Execute SQL Task执行多条sql语句的时候 貌似SSIS不能正确识别,这很烦
asus00 2013-11-28
  • 打赏
  • 举报
回复
引用 2 楼 ap0405140 的回复:
MSSQL建链接服务器到Oracle,然后处理的逻辑封装在MSSQL端的存储过程里.
??MSSQL的存储过程还能直接访问oracle的吗?
天善智能 2013-11-23
  • 打赏
  • 举报
回复
SSIS本来对Oracle不能完美的支持,他们是竞争对手关系。
天善智能 2013-11-23
  • 打赏
  • 举报
回复
在SSIS源里面拖这个控件 Microsoft OLE DB Provider for Oracle ,在写SQL的时候不要加上对应的用户,在Execute SQL Task执行就可以了
LongRui888 2013-11-23
  • 打赏
  • 举报
回复
建个连接服务器把:
--================================================================ --2、链接服务器为Oracle,使用oracle的oledb库MSDAORA --2.1.1为建立链接服务器 EXEC sp_addlinkedserver @server = 'OracleLinkedServer', --要创建的链接服务器名称 @srvproduct = 'Oracle', --产品名称 @provider = 'MSDAORA', --OLE DB 字符 @datasrc = 'orcl' --数据源 --2.1.2为创建连接服务器登陆 EXEC sp_addlinkedsrvlogin @rmtsrvname = 'OracleLinkedServer', --链接服务器名称 @useself = 'false', @locallogin = NULL, @rmtuser = 'scott', --Oracle服务器的登陆用户名 @rmtpassword = 'tiger' --Oracle服务器的登陆密码 --2.2为设置链接服务器属性 exec sp_serveroption @server='OracleLinkedServer', @optname = 'rpc', --从给定的服务器启动rpc @optvalue ='true' --这样可以调用远程的存储过程 exec sp_serveroption @server='OracleLinkedServer', @optname = 'rpc out', --对给定的服务器启动rpc @optvalue ='true' --在远程执行DDL语句 --2.3为在远程服务器上执行DDL语句新建表,用oracle的方式书写语句 exec('create table SCOTT.EMPXX(iddd int)') at OracleLinkedServer --2.4用openrowset函数,把oracle的数据直接新建表的同时插入数据 select * INTO EMP_X from openrowset('MSDAORA','orcl';'scott';'tiger',SCOTT.EMP) select * INTO EMP_X from openrowset('MSDAORA','orcl';'scott';'tiger','select * from SCOTT.EMP') --2.5为opendatasource函数,查询一下oracle中的数据 select * from opendatasource('MSDAORA','Data Source=orcl; User ID=scott; password=tiger')..SCOTT.EMP
唐诗三百首 2013-11-23
  • 打赏
  • 举报
回复
MSSQL建链接服务器到Oracle,然后处理的逻辑封装在MSSQL端的存储过程里.

687

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧