PHP ODBC 到 HANA/SAP returns 结果比预期少
PHP ODBC to HANA/SAP returns less results than expected
我遇到了一个非常奇怪的问题。我在 HANA Studio 中编写了一个 HanaSQL 查询。一切都很好,returns 是我预期的所有结果 - 大约 43k。
然后我在php中写了一个odbc连接,它将连接到SAP。在那之前一切正常。
现在我在我的脚本中从 HANA 执行相同的查询,得到的结果比我预期的少得多,有时是 3,有时是 148 或 1.3k 个结果。
问题是什么:
问题可能是查询中的数据太多。真的是大平table 我要看(81栏,不是我做的,那我也没办法了)。因此,如果我 select 减少列数,我将收到更多结果。假设我只是 select 来自产品的 ItemCode/SKU,然后我收到所有 43k 产品,这没问题。现在我要添加第二列,比方说 "name",它大部分比产品的 SKU 长。现在我只收到 13k 件商品。当我添加第三列 "description" 时,我只收到 1.3k 个结果。我认为结果的大小是问题。
其他有趣的事实:我之前用 C# 编写了一个工具,它也使用 SAME odbc 连接到 HANA。当我在 php 脚本中使用相同的查询时,我也会像在 HANA 中一样获得所有结果。
我正在 windows 机器上工作,所以我想 "OK, maybe XAMPP is the problem"。所以我在我自己的第二台机器上尝试了同样的事情,安装了 Linux mint (GUI),也在一台服务器上使用 Ubuntu 16。当我使用时,我总是得到相同的结果php。
所以我认为问题不可能出在与 hana 的连接上(不可能,因为它在 C# 工具中运行良好)。这也不是查询,因为我在 HANA 和 C# 工具中得到了我期望的所有结果。这也不是 OS 问题,它在 3 个不同的系统上进行了测试,并且总是不同的 php 版本(另外 5 和 7 是单独测试的)。
我还在 php 中检查了一些 odbc 设置。也许我忘记了什么?
目前 - 也没有切换到 c# 的替代方法。背景:我们想从SAP读取产品,并想将它们导入到一个新的PIM系统中。一些属性将保留在 SAP 中,因此它不仅是初始导入,而且稍后还会对来自 SAP 的 2-3 个属性进行比较,然后我们每次都需要将其导入到 PIM 软件中。不,我们以后也不能将这些字段移动到 PIM 软件中——这是不需要的。
我昨天一整天都在搜索这个问题,但找不到其他人遇到这个问题。我希望有人能帮助我。
有没有人在使用 php 时也遇到过这个问题?
我真的希望有人能帮助我。
为了避免结果集传输中断的问题,必须在ODBC-DSN中设置参数CHAR_AS_UTF8=true
。
另见 。
我遇到了一个非常奇怪的问题。我在 HANA Studio 中编写了一个 HanaSQL 查询。一切都很好,returns 是我预期的所有结果 - 大约 43k。
然后我在php中写了一个odbc连接,它将连接到SAP。在那之前一切正常。
现在我在我的脚本中从 HANA 执行相同的查询,得到的结果比我预期的少得多,有时是 3,有时是 148 或 1.3k 个结果。
问题是什么: 问题可能是查询中的数据太多。真的是大平table 我要看(81栏,不是我做的,那我也没办法了)。因此,如果我 select 减少列数,我将收到更多结果。假设我只是 select 来自产品的 ItemCode/SKU,然后我收到所有 43k 产品,这没问题。现在我要添加第二列,比方说 "name",它大部分比产品的 SKU 长。现在我只收到 13k 件商品。当我添加第三列 "description" 时,我只收到 1.3k 个结果。我认为结果的大小是问题。
其他有趣的事实:我之前用 C# 编写了一个工具,它也使用 SAME odbc 连接到 HANA。当我在 php 脚本中使用相同的查询时,我也会像在 HANA 中一样获得所有结果。
我正在 windows 机器上工作,所以我想 "OK, maybe XAMPP is the problem"。所以我在我自己的第二台机器上尝试了同样的事情,安装了 Linux mint (GUI),也在一台服务器上使用 Ubuntu 16。当我使用时,我总是得到相同的结果php。
所以我认为问题不可能出在与 hana 的连接上(不可能,因为它在 C# 工具中运行良好)。这也不是查询,因为我在 HANA 和 C# 工具中得到了我期望的所有结果。这也不是 OS 问题,它在 3 个不同的系统上进行了测试,并且总是不同的 php 版本(另外 5 和 7 是单独测试的)。
我还在 php 中检查了一些 odbc 设置。也许我忘记了什么?
目前 - 也没有切换到 c# 的替代方法。背景:我们想从SAP读取产品,并想将它们导入到一个新的PIM系统中。一些属性将保留在 SAP 中,因此它不仅是初始导入,而且稍后还会对来自 SAP 的 2-3 个属性进行比较,然后我们每次都需要将其导入到 PIM 软件中。不,我们以后也不能将这些字段移动到 PIM 软件中——这是不需要的。
我昨天一整天都在搜索这个问题,但找不到其他人遇到这个问题。我希望有人能帮助我。
有没有人在使用 php 时也遇到过这个问题? 我真的希望有人能帮助我。
为了避免结果集传输中断的问题,必须在ODBC-DSN中设置参数CHAR_AS_UTF8=true
。
另见