Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 如何一次性从PostGIS导出光栅?_Postgresql_Psql_Postgis Raster - Fatal编程技术网

Postgresql 如何一次性从PostGIS导出光栅?

Postgresql 如何一次性从PostGIS导出光栅?,postgresql,psql,postgis-raster,Postgresql,Psql,Postgis Raster,在光栅输出脚本的简化规范示例(我经常在论坛和书籍中看到)中,OID(由lo_create(0)返回,这里是9585208)必须在倒数第二行脚本(lo_export 9585208'C:/temp/raster.png')之前知道: 我很难弄清楚如何使PSQL cli实用程序一次性运行此脚本,即如何将LOU create(0)返回的OID通信到lo_export命令。lo_导出似乎是客户端命令,它无法消化任何查询结果。。。请帮助…最后,有一个PSQL命令\gset将值存储到脚本变量中,文档中说:

在光栅输出脚本的简化规范示例(我经常在论坛和书籍中看到)中,OID(由lo_create(0)返回,这里是9585208)必须在倒数第二行脚本(lo_export 9585208'C:/temp/raster.png')之前知道:


我很难弄清楚如何使PSQL cli实用程序一次性运行此脚本,即如何将LOU create(0)返回的OID通信到lo_export命令。lo_导出似乎是客户端命令,它无法消化任何查询结果。。。请帮助…

最后,有一个PSQL命令\gset将值存储到脚本变量中,文档中说:

\gset将当前查询缓冲区发送到服务器并存储查询的 输出到psql变量中。要执行的查询必须返回 正好一排。行的每一列都存储在单独的 变量,名称与列相同

下面是相应修改的脚本:

SELECT lo_create(0) as blob_oid

\gset

SELECT oid, lowrite(lo_open(oid, 131072), img) As num_bytes
FROM (
    VALUES (
        :blob_oid,
        (SELECT ST_AsPNG(rast)
        FROM bag_o_rasters
        LIMIT 1)
    )
) As v(oid,img);

\lo_export :blob_oid 'C:/temp/raster.png'

SELECT lo_unlink(:blob_oid);
SELECT lo_create(0) as blob_oid

\gset

SELECT oid, lowrite(lo_open(oid, 131072), img) As num_bytes
FROM (
    VALUES (
        :blob_oid,
        (SELECT ST_AsPNG(rast)
        FROM bag_o_rasters
        LIMIT 1)
    )
) As v(oid,img);

\lo_export :blob_oid 'C:/temp/raster.png'

SELECT lo_unlink(:blob_oid);