对sqliteodbc使用json_extract()时出错

col17t5w  于 2022-12-13  发布在  SQLite
关注(0)|答案(1)|浏览(195)

我使用http://www.ch-werner.de/sqliteodbc/中的sqliteodbc和ms word中的以下代码

str_cnxn = "Driver={SQLite3 ODBC Driver};Database=" & db_path
Dim Cnxn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Cnxn.Open str_cnxn
rst.Open "Select *,json_extract(pdf_links, '$.root')  as root from book where book_id=10", Cnxn, adOpenForwardOnly, adLockReadOnly
Debug.Print rst!book_name, rst!Root
rst.Close

我收到此错误

no such function:json_extract

在SQLite数据库浏览器https://sqlitebrowser.org/上成功运行同一数据库上的同一SQL语句

omjgkv6w

omjgkv6w1#

您是否了解,当您使用SQLiteODBC和SQLite Db Browser时,您使用的是两个完全不同的SQLite版本?
最新的SQLiteODBC版本已经过时了。如果你想通过SQLiteODBC使用JSON函数,你需要自己编译它。我最近从源代码构建了一个Windows版本的SQLiteODBC。安装程序可以从GitHub repo获得。你需要卸载当前安装的驱动程序并安装一个新的(要么是你自己编译的副本,要么是我的副本)。注意,如果你自己构建驱动程序,在你做对之前,不能保证它会工作。源代码中包含的构建脚本是坏的,并且需要进行额外的修改以包括SQLite的最新副本。我的副本包括SQLite 3. 39,它具有正常工作的JSON功能。

相关问题