Assign_vertex_id函数 [英] Assign_vertex_id function
本文介绍了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屋!
查看全文