我在一个文件中有一堆SQL,它创建表等等。问题是当我尝试执行它时,.read命令只返回“无法打开xxx”。我已经将权限设置为每个人都读/写,但这没有帮助。我可以从命令行捕获文件并查看它。
这是在Mac OS 10.6.3下。
有人有任何想法吗?谢谢!
答案 0 :(得分: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的调用失败时,您才会看到该实用程序将打印“无法打开xxx”。可惜他们不会为你打印errno,但是这个信息应该真的可以帮助你缩小问题的范围,而不是特定于sqlite。
您要么指定错误的路径(尝试引用它),您没有权限,或者该文件确实不存在(意味着您使用cat
的方式有所不同, .read
,与当前目录不同)。
答案 1 :(得分:1)
小心;在末尾。 .read不喜欢;的。