gpt4 book ai didi

sql - sqlite3命令行返回码不一致

转载 作者:行者123 更新时间:2023-12-03 19:43:09 24 4
gpt4 key购买 nike

在sqlite3命令行程序中,我无法在Internet上的任何地方找到文档以获取返回码。

尝试以编程方式使用它时,我发现一些错误将显示在屏幕上,但仍返回零。例如,任何返回错误消息“错误:SQL不完整”的操作都不会导致命令行应用程序返回非零值:

$ echo 'foo' > /tmp/foo.sql
$ sqlite3 /tmp/foo.db < /tmp/foo.sql
Error: incomplete SQL: foo
$ echo $?
0


这是一个错误吗?我会这样认为,尤其是考虑到以下等效行:

$ sqlite3 /tmp/foo.db "foo"
-- Loading resources from /home/yomomma/.sqliterc

Error: near "foo": syntax error
$ echo $?
1


谁能指出我有关sqlite3的预期返回值的文档?

(问题不是我的.sqliterc,在此处完整复制:

.mode column
.headers on
.nullvalue '<NULL!>'




编辑:

$ sqlite3 --version
-- Loading resources from /home/yomomma/.sqliterc

3.7.13 2012-06-11 02:05:22 f5b5a13f7394dc143aa136f1d4faba6839eaa6dc

最佳答案

这可能是SQLite(v3.8.6)中的错误。我正在看shell.c:3644

if( nSql ){
if( !_all_whitespace(zSql) ){
fprintf(stderr, "Error: incomplete SQL: %s\n", zSql);
}
free(zSql);
}
free(zLine);
return errCnt>0;


我认为fprintf语句后应该有一个 errCnt++;。在检测到另一种类型的错误后,此增量操作将在代码中更早使用。我将报告给作者。

关于sql - sqlite3命令行返回码不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26286104/

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