在某些机器上发现了PostgreSQL函数“ idx”,但在其他机器上却没有发现

问题描述 投票:2回答:1

这里是我正在用PreparedStatement执行的查询

SELECT planner.udf_desc.* FROM planner.udf_desc WHERE id IN(3,2) ORDER BY idx(array[3,2], id);

我在udf_desc模式中有一个名为planner的表。为了使其工作,我在数据库中安装了intarray扩展名

create extension "intarray"

我正在使用linux机器。我在其他三台机器(都是Linux)中进行了尝试。但是现在当我在Windows计算机上尝试相同的操作时。它无法正常工作,并且出现以下错误:

function idx(integer[], integer) does not exist

我在其他三台Windows机器上尝试过,但是不起作用。我在服务器控制台上打印了堆栈跟踪

18:01:40,505 ERROR [com.ers.dao.UdfDao] (default task-13) SELECT planner.udf_desc.* FROM planner.udf_desc WHERE id IN(2) ORDER BY idx(array[2], id)
18:01:40,517 ERROR [stderr] (default task-13) java.sql.SQLException: ERROR: function idx(integer[], integer) does not exist
18:01:40,517 ERROR [stderr] (default task-13)   Hint: No function matches the given name and argument types. You might need to add explicit type casts.
18:01:40,520 ERROR [stderr] (default task-13)   Position: 73 Query: SELECT planner.udf_desc.* FROM planner.udf_desc WHERE id IN(2) ORDER BY idx(array[2], id) Parameters: []
18:01:40,522 ERROR [stderr] (default task-13)   at org.apache.commons.dbutils.AbstractQueryRunner.rethrow(AbstractQueryRunner.java:392)
18:01:40,524 ERROR [stderr] (default task-13)   at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:351)
18:01:40,526 ERROR [stderr] (default task-13)   at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:289)

所有机器上的一切都相同,但是idx功能在一个机器上起作用,而在其他机器上却不起作用。

java postgresql jdbc prepared-statement
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.