Assign_vertex_id函数 [英] Assign_vertex_id function

查看:219
本文介绍了Assign_vertex_id函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我执行以下查询时;

When I execute the following query;

SELECT Assign_vertex_id('ways', 0.00001, 'the_geom', 'gid')

我遇到以下错误;

NOTICE:  CREATE TABLE will create implicit sequence "vertices_tmp_id_seq" for serial column "vertices_tmp.id"
    CONTEXT:  SQL statement "CREATE TABLE vertices_tmp (id serial)"
    PL/pgSQL function "assign_vertex_id" line 15 at EXECUTE statement
    ERROR:  query string argument of EXECUTE is null
    CONTEXT:  PL/pgSQL function "assign_vertex_id" line 32 at EXECUTE statement

    ********** Error **********

    ERROR: query string argument of EXECUTE is null
    SQL state: 22004
    Context: PL/pgSQL function "assign_vertex_id" line 32 at EXECUTE statement

知道为什么会这样吗?

推荐答案

我知道这是一篇过时的文章,但我想提供一个答案,也许会对某人有所帮助.

I know this is an old post, but I would like to provide an answer, maybe it would help someone.

我发现了文章,解决了我的问题.

I have found this article, which solved my problem.

更新:

因此,我在此处复制了文章中的相关信息:

So I copy the relevant information from the article here:

以下代码的第一行是错误的:

The first line of the following code is wrong:

FOR _r IN EXECUTE 'SELECT srid FROM geometry_columns WHERE f_table_name='''|| quote_ident(geom_table)||''';' LOOP
srid := _r.srid;
    END LOOP;

并且应修改为:

FOR _r IN EXECUTE 'SELECT srid FROM geometry_columns WHERE f_table_name='''|| geom_table||''';' LOOP
srid := _r.srid;
    END LOOP;

这是因为"quote_ident(tablename)"错误,它在表名周围添加了一个额外的''.

It is because "quote_ident(tablename)" is wrong, it adds an extra ' ' around the tablename.

这篇关于Assign_vertex_id函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆