Postgresql 如何一次性从PostGIS导出光栅?
在光栅输出脚本的简化规范示例(我经常在论坛和书籍中看到)中,OID(由lo_create(0)返回,这里是9585208)必须在倒数第二行脚本(lo_export 9585208'C:/temp/raster.png')之前知道: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将值存储到脚本变量中,文档中说:
我很难弄清楚如何使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);