gpt4 book ai didi

excel - 从电源查询中调用 gpkg 上的 sqlite3 时激活 spatialite

转载 作者:行者123 更新时间:2023-12-04 19:50:00 25 4
gpt4 key购买 nike

我正在尝试通过 excel 的电源查询对具有存储在 gpkg 中的几何列的表进行空间查询。
尝试运行查询时,如下所示:

= Odbc.Query("database=path/to/gpkg;dsn=SQLite3 Datasource", "select *,st_centroid(geom) as cent from some_layer")
它返回以下错误:
DataSource.Error: ODBC: ERROR [HY000] no such function: st_centroid (1)
从 sqlite3 cli 运行时也会发生以下情况:
enter image description here
但是,如果我跑
select load_extension('mod_spatialite')
事先,它有效。
我的问题是,当我尝试在电源查询中运行两个命令时,如下所示:
= Odbc.Query("database=path/to/gpkg;dsn=SQLite3 Datasource", "select load_extension('mod_spatialite');#(lf)select * from some_layer")
我收到以下错误:
DataSource.Error: ODBC: ERROR [HY000] only one SQL statement allowed
所以我的问题是 - 如何设置对已加载空间扩展的 sqlite3 的调用?

最佳答案

您可以尝试连续运行这两个查询吗?由于它们是同一 session 的一部分,因此它可能会为您提供所需的东西。我没有要测试的环境,但我的想法是:

let
Source = Table.Combine({a, b}),
a = Odbc.Query("database=path/to/gpkg;dsn=SQLite3 Datasource", "select load_extension('mod_spatialite')"),
b = Odbc.Query("database=path/to/gpkg;dsn=SQLite3 Datasource", "select *,st_centroid(geom) as cent from some_layer")
in
Source

关于excel - 从电源查询中调用 gpkg 上的 sqlite3 时激活 spatialite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72480896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com