经过各种折腾,终于解决了这个问题。参考了各论坛的方案,解决办法如下:
1格式化电脑,重装 *** 作系统和SQL Server 2012。因为看到有一种说法是64位的SQL Server安装的路径中有program file (X86),这个括号影响oracle客户端工作。在未重做系统前,卸载重装不能改变这个安装路径,可能是卸不干净的问题。重装的时候指定了文件路径和共享路径为c:\sqlserver,但是在运行时,发现visual studio2010的实际路径仍在program file (X86)下。
安装oracle 10g 32位客户端,再安装oracle10g 64位客户端,有顺序要求。在安装前要修改一下文件,否则系统报错,装不上。
~ 编辑安装包内文件 database/stage/prereq/db/refhostxml
增加下面节点
<OPERATING_SYSTEM>
<VERSION VALUE="61"/>
</OPERATING_SYSTEM>
~ 编辑安装包内文件 database/install/oraparamini
找到小节 在下面的第二行中增加windows版本61,如下面所示
Windows=40,50,51,52,61
至此,在net manager中建立和oracle的连接,测试是连通的,但是在SSIS中连不上。
3安装oralce 11g 32位,然后安装oracle 11g64位。安装完成后,修改注册表。
(1) For both 32-bit and 64-bit installations, open up REGEDIT and make the following registry changes:
HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC\MTxOCI
OracleOciLib contains the value ocidll
OracleSqlLib contains the value orasql11dll (old value is SQLLib80dll)
OracleXaLib contains the value oraclient11dll (old value is xa80dll)
(2) For 64-bit installations only:
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\MSDTC\MTxOCI
OracleOciLib contains the value ocidll
OracleSqlLib contains the value orasql11dll (old value is SQLLib80dll)
OracleXaLib contains the value oraclient11dll (old value is xa80dll)
(3) You must reboot your server for the changes to apply Reboot your server
参考文章 >
建议你这样试试看:
使用SQL语句在另一个数据库进行生成 使用数据库备份这样做的好处:
使用SQL语句的话,换一台电脑可以轻松生成数据库
import javasql;
public class connect
{
String strDBDriver="orgpostgresqlDriver";
String strDBUrl="jdbc:postgresql://localhost:1433;databasename=数据库名;
private Connection conn=null;
private Statement stmt=null;
ResultSet rs=null;
public ksxt()
{
try
{
ClassforName(strDBDriver);
}
catch(javalangClassNotFoundException e)
{
Systemerrprintln("ksxt():"+egetMessage());
}
}
public ResultSet executeQuery(String sql)
{
rs=null;
try
{
conn=DriverManagergetConnection(strDBUrl,"数据库登录名","密码");
stmt=conncreateStatement();
rs=stmtexecuteQuery(sql);
}
catch(SQLException ex)
{
Systemerrprintln("aqexecuteQuery:"+exgetMessage());
}
return rs;
}
public void executeUpdate(String sql)
{
stmt=null;
rs=null;
try
{
conn=DriverManagergetConnection(strDBUrl,"数据库登录名","密码");
stmt=conncreateStatement();
stmtexecuteQuery(sql);
stmtclose();
connclose();
}
catch(SQLException ex)
{
Systemerrprintln("aqexecuteQuery:"+exgetMessage());
}
}
public void closeStmt()
{
try
{
stmtclose();
}
catch(SQLException e)
{
eprintStackTrace();
}
}
public void closeConn()
{
try
{
connclose();
}
catch(SQLException e)
{
eprintStackTrace();
}
}
}
首先创建ODBC连接:
控制面板> 管理工具> ODBC链接> 系统DSN> 添加> 设置参数> 测试链接> 完成
在ssis中用 ssis连接管理器向导使用连接
利用SSIS(SQL Server综合服务,SQL Server Integration Service)工具进行ETL开发过程中,遇到了每一次将开发的ETL包迁移到正式服务器时,需要逐个的修改数据库连接的问题,如果只有一个或者几个包,每个包里面只有一个数据库连接的话,还可以接受。如果有多个包,每个包里有多个数据库连接,每做一次迁移简直是一个灾难。通过查阅相关的帮助和资料,找到了通过“包配置”来解决这个问题。
包配置实质上是将包中的一些需要灵活设置信息集中存放包配置中,每次在开发环境打开或者运行包时,SSIS自动找到对应的包配置信息,然后根据包配置信息打开或者运行包。在开发环境下“SSIS”单下用户可以找到“包配置”菜单项,打开“包配置窗口,如果用户已经存在包配置,可以在这个窗口中进行编辑和修改。单击添加按钮,可以打开添加新的配置。包配置的类型有:XML配置文件、环境变量、注册表项、父包变量、SQL Server几种类型,每种类型存储配置信息方式不同,本文以xml配置文件类型为例说明。xml配置文件类型的包配置会将配置信息以一个xml文件的形式存储,用户通过文本工具打开xml文件编辑配置信息。
本文通过一个实例来说明利用包配置方法和步骤。假设一个SSIS项目中有一个数据连接,当用户将SSIS项目由开发环境部署到正式环境,通常情况下在迁移过程中需要在开发环境下打开包修改数据库连接的连接字符串、连接数据库的用户名、密码才能在正式环境下正常运行,根据这个修改要求,我们可以将数据库连接的字符串、连接数据库用户名、密码做到包配置里,只需修改包配置就可以使包能够正常运行。配置步骤如下:
1、打开包配置界面,单击“添加”按钮添加一个包配置。
2、在包配置向导界面选择“xml配置文件”,单击浏览按钮,在d出的窗口中为包指定路径和文件名,这里的包配置文件名为 ConnectionConfigdtsConfig(xml文件)。
3、在第三个界面中选择需要在包配置中设置的一些属性,这里可以为SSIS包的组件属性、变量等设置初始值。这里选择“ /SERVER01”这个连接的ConnectionString,Password,Usrname三个属性,使他们可以在ConnectionConfigdtsConfig灵活配置。
4、下一步之后输入配置名称,就完成了配置设置。
迁移到正式环境后,用户可以用文本编辑器打开ConnectionConfigdtsConfig编辑,修改三个属性与正式环境相同的信息,用户就可以直接运行包了。
顶
以上就是关于怎样从SSIS 连接上远方的oracle 10g数据全部的内容,包括:怎样从SSIS 连接上远方的oracle 10g数据、100多台sqlserver数据库同步到ORACLE有什么工具或方法、sqlserver如何把一个数据库复制到另外一个数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)