疑难解答

以下部分介绍使用 Power Query SAP HANA 连接器时可能出现的一些问题,以及一些可能的解决方案。

已知问题和限制

使用 SAP HANA 存在一些限制,如下所示:

  • NVARCHAR 字符串截断的最大长度为 4000 个 Unicode 字符。
  • 不支持 SMALLDECIMAL。
  • 不支持 VARBINARY。
  • 有效日期在 1899/12/30 和 9999/12/31 之间。

错误:此连接器需要安装一个或多个附加组件

连接器会在注册表中查找驱动程序,因此,如果未正确安装驱动程序,则不会显示该驱动程序。

注册表项为:

HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC Drivers

如果使用的是 64 位计算机,但 Excel 或 Power BI Desktop 为 32 位(如下面的屏幕截图),则可以改为在 WOW6432 节点中检查驱动程序:

HKEY_LOCAL_MACHINE\Software\WOW6432Node\ODBC\ODBCINST.INI\ODBC Drivers

请注意,驱动程序需要与 Excel 或 Power BI Desktop 的位版本匹配。 如果使用的是:

  • 32 位 Excel/Power BI Desktop,需要 32 位 ODBC 驱动程序 (HDBODBC32)。
  • 64 位 Excel/Power BI Desktop,需要 64 位 ODBC 驱动程序 (HDBODBC)。

通常通过运行 hdbsetup.exe 来安装驱动程序。

最后,驱动程序还应显示为“ODBC DataSources 32 位”或“ODBC DataSources 64 位”。

收集 SAP HANA ODBC 驱动程序跟踪

要捕获 SAP HANA 跟踪:

  1. 打开命令行窗口。

  2. 根据安装,可能需要转到 C:\Program Files,而不是 C:\Program Files (x86)。 命令也可能是 hdbodbc_cons.exe,而不是 hdbodb_cons32.exe。

  3. 键入以下命令:

    cd C:\Program Files (x86)\sap\hdbclient
    hdbodbc_cons32.exe config trace api on
    hdbodbc_cons32.exe config trace sql on
    hdbodbc_cons32.exe config trace debug on
    hdbodbc_cons32.exe config trace short on
    hdbodbc_cons32.exe config trace packet 99999999999999
    hdbodbc_cons32.exe config trace filename D:\tmp\odbctraces\hana-%p.html
    hdbodbc_cons32.exe trace refresh
    hdbodbc_cons32.exe show all

  4. 打开 Power BI,清除缓存,然后重新运行场景。

  5. 完成后,压缩跟踪:

    • 从 ODBC 数据源管理器的跟踪选项卡中的日志文件路径
    • 从基于使用命令 hdbodbc_cons32.exe config trace filename 配置的路径的 HANA 跟踪。
  6. 使用以下命令禁用跟踪:

    hdbodbc_cons.exe trace off

捕获 SAP HANA 跟踪时,注意以下注意事项:

  • 跟踪命令应作为将运行访问 SAP HANA 服务器的 Mashup 进程的用户身份运行。
  • 运行 Mashup 进程的用户应可写入指定的跟踪文件路径。

例如:

  • 要从网关捕获非 SSO 连接,请确保使用网关服务用户。 也就是说,如果要执行 hdodbc_cons.exe 调用,请以网关用户身份运行命令行窗口。 确保网关服务器用户可以写入指定的日志文件位置。
  • 要从网关捕获 SSO 连接,请使用 SSO 用户。

SAP HANA:权限不足

收到此消息可能是因为:

  • 用户没有足够的合法权限来访问他们尝试访问的视图。

  • 以下已知问题:

    问题:无法使用 SAP 客户端 2.0 37.02 从 PBI Desktop 连接到 SAP HANA,但如果将客户端版本降级到 1.00.120.128,则可正常工作。

    ERROR MESSAGE: External error: ERROR [S1000] [SAP AG][LIBODBCHDB DLL][HDBODBC] General error;258 insufficient privilege: [2950] user is not authorized

    • 来自 SAP 的响应:

      SAP 对已知问题的响应。

    遗憾的是,这是一个 SAP 问题,因此需要等待 SAP 修复。