gpt4 book ai didi

postgresql - pgAdmin 4 不使用几何创建函数

转载 作者:行者123 更新时间:2023-11-29 11:58:30 27 4
gpt4 key购买 nike

在长期使用 pgAdmin 3 之后,我最近开始使用 pgAdmin 4。

我现在遇到的问题是我无法替换引用 geometry 对象的现有函数。我在 Windows 10 上,pgAdmin 4 的当前版本是 2.1。

数据库中已经存在 PL/pgSQL 函数,它是使用 flyway、psql 或 pgAdmin 3 创建的,并且可以运行。PostGIS 扩展已启用。

现在我进入 pgAdmin 4 并使用与以往相同的登录名,为函数选择“脚本”->“创建脚本”,然后单击 F5 -“运行脚本”来创建它。

我得到的是一个错误:

ERROR:  type "geometry" does not exist
LINE 22: v_location geometry;

在 pgAdmin 3 中同样的操作没有报错。该函数的 search_path 设置正确,可以在 pgAdmin3 和 psql 中创建。

实际上我可以在 pgadmin4 的查询工具中创建一个虚拟函数并编译它。见下文:

set search_path=res_cc_01,public;
create or replace function test() returns text
LANGUAGE plpgsql VOLATILE SECURITY DEFINER
COST 100
set search_path=res_cc_01,public
AS
$BODY$
DECLARE
v_g geometry := ST_GeometryFromText('POINT(142.279859 -9.561480)',4326);
begin
return 'xxx'::text;
end;
$BODY$

只有在通过 Scripts->Create Script 然后 F5 ( Execute ) 重新编译时我才收到错误。这里有什么问题?

我在网上找不到类似的问题,也没有在手册中找到。但我还没有全部读完。

最佳答案

您肯定缺少当前数据库中的 postgis 扩展。如果您已经在您的服务器中安装了它,只需执行以下命令来创建扩展和缺少的数据类型:

创建扩展 postgis;

如果恰好你的数据库服务器上没有安装它,你可以找到许多操作系统的安装说明 here .

关于postgresql - pgAdmin 4 不使用几何创建函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49529621/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com