gpt4 book ai didi

java - Hive 通过来自 Java 的 ODBC 问题 : parameters reordered

转载 作者:行者123 更新时间:2023-12-01 12:47:49 25 4
gpt4 key购买 nike

我创建了语句并按正确的顺序提供了 4 个参数值。当我执行此操作时 - 我收到了错误的结果。当我查看作业元数据时,我发现条件已重新排序,但参数值位于相同位置。

执行的语句:

SELECT l.shipperid
FROM db.orders l
JOIN db.customers r ON l.shipperid = r.customerid
WHERE (l.employeeid > ? AND l.employeeid < ?) OR (r.customerid = ? OR r.customerid = ?)


statement.setInt(1, 3);
statement.setInt(2, 8);
statement.setInt(3, 1);
statement.setInt(4, 3);

来自作业元数据:Hive.query.string:

SELECT l.shipperid AS c
FROM db.orders l
JOIN db.customers r ON (l.shipperid = r.customerid)
WHERE (((r.customerid = 3) OR (r.customerid = 8)) OR ((l.employeeid > 1) AND (l.employeeid < 3)))

如果您比较这两个查询,您会发现条件已重新排序,但值 - 没有。

使用最新的 Cloudera 镜像。 hive 0.12。 HiveServer2

有人知道为什么会这样吗?

最佳答案

我相信您在驱动程序内的 SQL 到 HiveQL 转换中发现了一个错误。我已经在最新的 Simba Hive 版本上对此进行了测试(Cloudera 驱动程序是相同的,但它特定于 Cloudera 发行版),并且它也显示在那里。

我为 Simba 工作,并已让我们的工程师了解此事,他们将对此进行调查。如果您是 Cloudera 客户,您可以联系他们,然后他们将与您和我们一起解决问题。如果您不是,或者您使用的是 Apache 版本,您可以直接联系我们进行修复。

关于java - Hive 通过来自 Java 的 ODBC 问题 : parameters reordered,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24520340/

25 4 0