我正在尝试在 SLES 11 sp3 环境中设置 HANA Smart Data Access。为了使 HANA 与外部数据源通信,需要使用 unixODBC 2.3.0 以及适用于 SQL Server 2012 的 Microsoft ODBC Driver 11(因为我正在尝试连接到 MS SQL 服务器数据库)。我的 /etc 目录中有 odbc.ini 和 odbcinst.ini,主目录中有 .odbc.ini。根据迄今为止的所有示例,这些配置似乎都正确无误(有一次它们配置不正确,我收到了相应的错误,这个问题已经解决了。)
我现在收到一个新错误,仅当我尝试连接到 odbc.ini 文件中列出的数据源时才会返回该错误:
“抛出‘std::runtime_error’实例后调用终止what():locale::facet::_S_create_c_locale名称无效中止”
到目前为止,我尝试解决此问题包括更改 ssh_config 文件以防止 ssh 发送本地环境变量、将 LC_ALL 设置为 en_US.UTF-8 和 LANG=en_US、将 LC_ALL 设置为 c 以及其间的各种组合。我已使用 locale -a 验证 en_US.UTF-8、POSIX 和 c 均已安装。我在这里找到了有关 boost 问题的参考https://svn.boost.org/trac/boost/ticket/4688然而,这已经有 5 年历史了,影响被列为 sles 10,而不是 11。
答案1
我遇到了这个问题,当我安装 en_US.UTF-8 区域设置后它就消失了。
确保在运行 unixodbc 和 sqlcmd 的计算机上安装了该软件
https://community.spiceworks.com/how_to/78224-install-the-ms-sql-odbc-driver-on-debian-7