我们正在将SAP BW实例从MSSQL迁移到HANA数据库,并且要求在系统之外使用SSIS . 使用SSDT(VS2010),我在尝试从HANA读取数据时遇到各种错误 . 我安装了驱动程序,可以在我编写的小型C#应用程序中连接和查询数据(也将在下面发布该代码) .
类似的堆栈问题here:我的设置是:
第一个错误:使用.Net Provider for ODBC conncections
我收到以下错误:[SSIS.Pipeline]错误:ADO NET源验证失败并返回错误代码0xC0208449 . [SSIS.Pipeline]错误:ADO NET Source验证失败并返回错误代码0xC0208449 .
验证失败?这是授权问题吗?没有
第二个错误:使用直接ODBC连接
我收到以下错误:
[ODBC Source 4]错误:对连接管理器HANA_ODBC的AcquireConnection方法调用失败,错误代码为0xC0014009 . 在此之前可能会发布错误消息,其中包含有关AcquireConnection方法调用失败原因的更多信息 .
[SSIS.Pipeline]错误:ODBC源验证失败并返回错误代码0x80004005 .
[连接管理器“HANA_ODBC”]错误:尝试与数据库服务器 Build 开放式数据库连接(ODBC)连接时出错 .
连接管理器也取得了相同的成功:
第三个错误:使用安装HANA客户端时提供的.NET HANA Provider
我甚至没有看到32位DSN的选项 . 仅显示64位DSN,当输入用户和通行证时,它会抛出异常 .
64位DSN:
32位DSN:
可以连接和查询来自HANA的数据的C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Odbc;
using System.Data;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
using (OdbcConnection myConnection = new OdbcConnection())
{
string myConnectionString;
myConnectionString = "DSN=HANA32;SERVERNODE=MyHana:30015;UID=SYSTEM;PWD=MyPW;DATABASENAME=DB";
myConnection.ConnectionString = myConnectionString;
try
{
myConnection.Open();
}
catch (System.Data.Odbc.OdbcException ex)
{
Console.Error.WriteLine(ex);
}
if (myConnection.State == ConnectionState.Open)
{
Console.Write("Connection Open");
Console.WriteLine();
OdbcCommand DbCommand = myConnection.CreateCommand();
DbCommand.CommandText = "SELECT \"BATCH\" FROM \"_SYS_BIC\".\"ZBW/ZBATCH_ATTRS\" LIMIT 10";
OdbcDataReader DbReader = DbCommand.ExecuteReader();
while (DbReader.Read())
{
Console.WriteLine(DbReader["BATCH"].ToString());
}
DbReader.Close();
DbCommand.Dispose();
myConnection.Close();
Console.ReadLine();
}
else
{
Console.Write("Failure");
Console.ReadLine();
}
}
}
}
}
堆栈问题:Hana and SSIS有答案,但答案中的链接已经死了 .
任何有关这个问题的帮助将不胜感激!!
1 回答
造成这种情况的根本原因是HANA ODBC的32位驱动程序上的注册表项不正确 . 正确的条目应如下所示:
64位:计算机\ HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC \ ODBCINST.INI \ HDBODBC
32位:用于MS Excel的计算机\ HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ ODBC \ ODBCINST.INI \ SAP HANA