我在一个文件中有一堆 SQL,它创建表等等。问题是,当我尝试执行 .read 命令时,它只是返回“无法打开 xxx”。我已将权限设置为每个人读/写,但这没有帮助。我可以从命令行 cat 该文件并看到它很好。
这是在 Mac OS 10.6.3 下。
这里有人有什么想法吗?谢谢!
这是 shell.c 中的源代码,其中 sqlite3 实用程序执行
.read
并尝试读取 .sql 文件:
if( c=='r' && strncmp(azArg[0], "read", n)==0 && nArg==2 ){
FILE *alt = fopen(azArg[1], "rb");
if( alt==0 ){
fprintf(stderr,"can't open \"%s\"\n", azArg[1]);
}else{
process_input(p, alt);
fclose(alt);
}
}else
您可以看到,仅当调用 fopen 失败时,该实用程序才会打印“can't open xxx”。遗憾的是他们没有为你打印 errno,但是这个信息应该真正帮助你缩小问题范围,因为它不是特定于 sqlite 的。
您指定的路径错误(尝试引用它),您没有权限,或者文件确实不存在(这意味着您使用
cat
和 .read
的方式有所不同,就像当前目录不同)。
留意 ;在最后。 .read 不喜欢 ;'s.
我遇到了同样的问题,摆脱了 ;最后它成功了。哈哈 smh 菜鸟错误。