微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

动态SSIS包可将N个表从Oracle加载到SQL

如何解决动态SSIS包可将N个表从Oracle加载到SQL

我们在Oracle服务器上有N个表,我们想将所有这些表从Oracle加载到sql Server。我们正在为其创建动态SSIS软件包,这些软件包将使用Oracle ServerName,DB名称,架构名称,表列表等,并将所有这些表加载到sql Server。我们已经在Oracle的sql Server(SSMS)上添加链接服务器。

但是我们没有获得有效的方法来做到这一点。我们如何在单个SSIS包中实现这一目标。如何处理Oracle表的元数据并在sql Server上创建元数据?这个SSIS包也应该在sql Server上动态创建表,为此,我们在SSIS包中尝试了Temp表。

解决方法

由于必须处理大量表,因此我将编写一个类似以下内容的pl / sql过程:

声明 v_sql varchar2(1024);

begin
for x in (select owner,table_name from dba_tables where .....)
  v_sql := 'created table '||
           table_name ||
           '@mssql a select * from '||
           x.owner || '.' || x.table_name || ';';
  exec immediate v_sql;
end loop;
end;
/

或者,如果要在启动之前进行查找,请使用sql编写sql。在sqlplus中:

set echo off feedback off verify off trimsp on pages 0
spool doit.sql
select 'create table '||
        table_name ||
        '@mssql as select * from '||
        owner || '.' || table_name || ';'
from dba_tables
where .....
;
spool off

然后在运行之前检查假脱机的sql文件是否存在任何问题。

上面的所有代码都不在我的脑海。可能存在语法上的小问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。