在具有Postgis的dblink PostgreSQL中,Linestring无法工作。

4

我试图使用PostGIS函数执行一个dblink,但是线串(linestring)给了我很多麻烦。

SELECT 
    DV3."XXX",
        s."QQQID",s."X",s."Y",a."PPP"
FROM 
    "QQQ" s INNER JOIN "AAA" a ON a."QQQID" = s."QQQID",
    dblink('dbname=ZZZ',
        'SELECT XXX,the_geom 
        FROM "geometry", "QQQ" s 
        WHERE box2d(geomfromtext(''LINESTRING('|| s."X" ||' '||s."Y" ||','|| s."X" || ' '||s."Y" || ')'',2309))
        && the_geom'
                           ) 
        DV3("XXX" INTEGER,"the_geom"  geometry)


WHERE 
    contains(DV3.the_geom,geomfromtext('POINT('|| s."X" ||' '|| s."Y" ||')',2309))--21
    AND "GGG" IS NOT NULL

错误

第9行:... WHERE box2d(geomfromtext(''LINESTRING('|| s .“X”+ 0 ....

注:此处为计算机程序代码,可能需要进一步上下文来进行翻译和理解。

在你的代码中,我看到geomfromtext后面有两个单引号而不是双引号,这是复制粘贴时的笔误吗? - Tanzeeb Khalili
请展示完整、准确的错误文本——不仅仅是“上下文”行。 - Craig Ringer
1个回答

2

根据Tanzeeb所说,有两个单引号挨在一起的实例看起来应该是双引号而不是两个单引号。

    'SELECT XXX,the_geom 
    FROM "geometry", "QQQ" s 
    WHERE box2d(geomfromtext(''LINESTRING('|| s."X" ||' '||s."Y" ||','|| s."X" || ' '||s."Y" || ')'',2309))
    && the_geom'

在LINESTRING之前,也在,2309之前。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接