Как вывести содержимое базы данных SQLite без использования командной строки, но в коде Perl? - PullRequest
0 голосов
/ 24 ноября 2010

Для регрессионного тестирования мне нужно выгрузить все содержимое базы данных SQLite в текстовый файл. Но все ссылки на этот вид деятельности ведут только к руководствам, использующим исполняемый файл sqlite. Есть ли способ в Perl сделать это без исполняемого файла?

Ответы [ 2 ]

2 голосов
/ 24 ноября 2010

Вы можете использовать стандартные методы DBI для запроса схемы.Страница руководства DBD :: SQLite гласит:

Подробную информацию о других распространенных методах см. Также в документации DBI.

table_info

 $sth = $dbh->table_info(undef, $schema, $table, $type, \%attr);

Возвращает все таблицы исхемы (базы данных), как указано в "table_info" в DBI.Схема и аргументы таблицы выполнят поиск "LIKE".Вы можете указать символ ESCAPE, включив атрибут 'Escape' в \% attr.Аргумент $ type принимает разделенный запятыми список следующих типов
'TABLE', 'VIEW', 'LOCAL TEMPORARY' и 'SYSTEM TABLE' (по умолчанию все возвращаются).Обратите внимание, что возвращается дескриптор оператора, а не прямой
список таблиц.

0 голосов
/ 24 ноября 2010

Один из вариантов - украсть реализацию .dump из исходного кода программы sqlite.

...