我怎样才能找到我的sqlite副本是用哪些扩展名构建的?

How can I find with what extensions has my copy of sqlite been built?

提问人:q.undertow 提问时间:7/4/2023 更新时间:7/4/2023 访问量:60

问:

我有一个涉及 sqlite3 的脚本,它在一个系统上运行良好,但在另一个系统上出现故障,抱怨 SQL 语法。语法依赖于sqlite JSON扩展,因此我怀疑故障的sqlite尚未编译对此扩展的支持。(它来自 linux 发行版;如果我真的需要,我会寻找包源。我怎样才能确认或否认这种预感? 不幸的是,没有提供此信息。sqlite3 -version

奖励问题:即使在这些错误之后抱怨,sqlite 似乎也会以状态 0 退出!这导致我丢失了一堆数据(因为脚本愉快地进入了清理阶段)。这不是一个错误吗?

JSON SQLite 错误处理 语法错误

评论

1赞 user4157124 7/4/2023
这回答了你的问题吗?列出已加载的 sqlite3 扩展?
0赞 q.undertow 7/4/2023
确实如此,谢谢!随意将我的问题标记为重复:)

答:

0赞 Andrea B. 7/4/2023 #1

默认情况下,JSON 函数和运算符内置于 SQLite 中,如下所示 SQLite 版本 3.38.0 (2022-02-22)。

可以通过添加 -DSQLITE_OMIT_JSON 编译时选项。在版本 3.38.0 之前, JSON 函数是一个扩展,仅包含在 如果包含 -DSQLITE_ENABLE_JSON1 编译时选项,则进行构建。 换句话说,JSON函数从SQLite的选择加入 版本 3.37.2 及更早版本,以选择退出 SQLite 版本 3.38.0 和 后。