我正在尝试使用SQLite CLI,但无法使generate_series
函数正常工作。正如文档中所建议的,我可以使用递归CTE对其进行仿真,但似乎无法使该链接中的任何示例正常工作。这是我的会话的一些输出:
sqlite> with recursive generate_series(value) as (
select 1
union all select value+1
from generate_series
where value+1<=3)
select value from generate_series;
1
2
3
sqlite> select value from generate_series;
Error: no such table: generate_series
sqlite> select value from generate_series(1,3,1);
Error: no such table: generate_series
似乎ext/misc/series.c
扩展名实际上不是静态链接的。如果我从头开始编译,我也不知道该怎么做。我在这里做错什么了吗?
修改 在how to compile an extension into SQLite得到一个好的答案之前,我认为我将无法做我想做的事情。文档是错误的:默认情况下,扩展名未内置到命令行外壳中。
答案 0 :(得分:0)
下载扩展名:https://sqlite.org/src/file/ext/misc/series.c并使用以下命令进行编译:
gcc -g -O2 -shared -fPIC -o series ./series.c
在此之后,以下应该工作:
$ sqlite3
sqlite> .load ./series
sqlite> select value from generate_series(5,30,5);
5
10
15
20
25
30
sqlite> .exit