我在SO上遇到了一些关于将数据库/表导出到txt文件的问题/答案。几乎每个解决方案都使用Java I / O.我想知道是否有人使用本机sqlite命令取得任何成功。以下是我的代码,它无法正常工作。如果有人有任何想法让我发挥作用,我将非常感激。
String OutputFile=Environment.getExternalStorageDirectory()+"/"+output + ".txt";
databaseHelper.getDatabase().beginTransaction();
databaseHelper.getDatabase().execSQL(".mode list");
databaseHelper.getDatabase().execSQL(".separator |");
databaseHelper.getDatabase().execSQL(".output " + OutputFile);
databaseHelper.getDatabase().execSQL("select * from "+ TABLE_NAME);
databaseHelper.getDatabase().execSQL(".exit");
databaseHelper.getDatabase().endTransaction();
答案 0 :(得分:2)
那些命令行shell命令不是SQL语句吗?不要混淆shell中的内容(如adb / sqlite3)与您在应用程序中的数据库客户端框架中使用的SQL语句。
简短的回答,如果您想将sqlite数据库导出到文本文件中,我认为您必须使用Java I / O.
答案 1 :(得分:1)
前缀为的命令。不是SQL;它们是由sqlite3 shell实现的。但是,如果您真的想使用此方法,则可以从Android应用程序调用sqlite3二进制文件。请参阅此example of how to do this in regular J2SE获取灵感。
出于好奇,你为什么要导出到文本? sqlite3二进制文件可在许多平台上使用;导出数据库然后使用桌面工具可能更有意义。
希望这有帮助,
Phil Lello