Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java postgresql函数“;idx“;在某些机器中找到,但在其他机器中找不到_Java_Postgresql_Jdbc_Prepared Statement - Fatal编程技术网

Java postgresql函数“;idx“;在某些机器中找到,但在其他机器中找不到

Java postgresql函数“;idx“;在某些机器中找到,但在其他机器中找不到,java,postgresql,jdbc,prepared-statement,Java,Postgresql,Jdbc,Prepared Statement,下面是我正在使用PreparedStatement SELECT planner.udf_desc.* FROM planner.udf_desc WHERE id IN(3,2) ORDER BY idx(array[3,2], id); 我在plannerschema中有一个名为udf\u desc的表。 为了让它工作,我在数据库中安装了intarray扩展 create extension "intarray" 我正在使用linux机器。我在另外三台机器(都是linux)上进行了上述尝

下面是我正在使用
PreparedStatement

SELECT planner.udf_desc.* FROM planner.udf_desc WHERE id IN(3,2) ORDER BY idx(array[3,2], id);
我在
planner
schema中有一个名为
udf\u desc
的表。
为了让它工作,我在数据库中安装了
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功能在一台机器上工作,而在另一台机器上不工作。

在AWS RDS上也有同样的问题。解决方案是删除扩展并重新创建它:

DROP EXTENSION intarray;
CREATE EXTENSION intarray;

您需要在Windows安装上运行
create extension intarray
,如下所示:well@a_horse_with_no_name我做了,我做了我在linux系统中所做的一切。或者你在错误的数据库中创建了扩展。或者可能在错误的模式中(我注意到您使用
planner限定了表的名称。
…扩展和函数存在于特定的模式中,就像其他数据库对象(如表)一样;但是扩展有点特殊:它们可以在每个数据库中创建一次,但仍然在模式中).@a_horse_和_no_name我再次交叉检查了所有内容。问题是,无论我是否从一开始就重新安装所有内容,它都在某些计算机上工作。但在其他具有相同安装方法的计算机上不工作。目前我观察到的是,它在任何windows计算机上都不工作。如果你说99%的情况下,问题在于connectivity、 搜索路径和权限。我可以保证您的连接是正确的。可能是搜索路径或权限有问题。如果您能在这方面帮助我,请告诉我。