1

次のクエリを実行すると;

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

なぜこれが起こっているのですか?

4

2 に答える 2

1

これは古い投稿であることは知っていますが、答えを提供したいと思います。誰かの助けになるかもしれません。

この記事を見つけて、私の問題を解決しました。

アップデート:

したがって、ここの記事から関連情報をコピーします。

次のコードの最初の行は間違っています。

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)" が間違っているため、テーブル名の前後に余分な ' ' が追加されます。

于 2013-01-10T11:51:04.740 に答える
0

多分あなたは試してみるべきです:

SELECT assign_vertex_id("ways", 0.00001, "the_geom", "gid");

GIYF

于 2012-09-08T18:26:51.040 に答える