Как объединить содержимое файла SQLite 3 WAL в основной файл базы данных? [Дубликат]

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

15
задан Johannes Fahrenkrug 24 October 2013 в 19:58
поделиться

2 ответа

Сделайте контрольную точку , т. е. выполните PRAGMA wal_checkpoint .

19
ответ дан CL. 18 August 2018 в 18:00
поделиться
  • 1
    При запуске терминала sqlite3 db.sqlite убедитесь, что каталог содержит файл -wal, затем запустите PRAGMA wal_checkpoint и выйдите из db на ctrl+d – Inder Kumar Rathore 15 February 2017 в 18:07

Из командной строки выполните следующее:

  1. sqlite3 MyDatabase.sqlite
  2. VACUUM;
  3. CTRL-D, чтобы выйти из консоли sqlite.

Done!

Файл -wal должен теперь иметь размер 0, и все должно быть в вашем основном файле базы данных.

23
ответ дан Johannes Fahrenkrug 18 August 2018 в 18:00
поделиться
  • 1
    В этой цепочке предлагаются два решения: (1) PRAGMA wal_checkpoint (2) VACUUM и выход. Я тоже работаю с Core Data. Мой основной файл sqlite был 46 МБ, а мой -wal-файл был колоссальным 1,2 ГБ. Мои результаты: PRAGMA wal_checkpoint или PRAGMA wal_checkpoint (1) не влияют. VACUUM уменьшил размер -wal-файла с 1,2 до 40,8 МБ и уменьшил основной sqlite с 46 до 40,5 МБ. Повторные казни любой из команд не привели к дальнейшим сокращениям. Однако выход из консоли sqlite3 уменьшил файл -wal до 0, как указано Johannes. – Jerry Krinock 17 August 2015 в 18:41
  • 2
    @JerryKrinock Эй, Джерри, приятно слышать от вас. Это действительно интересно! Возможно, вы захотите спросить людей в списке рассылки sqlite, и, пожалуйста, обновите свой комментарий, когда узнаете, почему это происходит. – Johannes Fahrenkrug 17 August 2015 в 19:34
Другие вопросы по тегам:

Похожие вопросы: