Base OpenOffice w menu Narzędzia posiada opcję eksportu bazy, która nie do końca działa. Dlatego, prawdopodobnie, znikła ona z LibreOffice, co nie znaczy, że możliwość eksportu nie istnieje.
Jak wyeksportować dane z osadzonej bazy na silniku HSQL w Base
Opisana metoda eksportu tabeli zadziała w OpenOffice i LibreOffice. Z menu wybieramy Narzędzia, następnie SQL.
Gdzie wydajemy polecenie:
SELECT * INTO TEXT "NazwaPliku" FROM "NazwaEksportowanejTabeli"
które wyeksportuje całą tabelę – wszystkie rekordy z wszystkimi kolumnami do pliku NazwaPliku.csv. Plik zostanie stworzony w katalogu, w którym zlokalizowana jest nasza baza (rozszerzenie CSV zostanie dodane automatycznie).
Korzystając z SQL można wybrać co dokładnie chcemy z tabeli wyeksportować, np:
SELECT "id", "nazwa", "adres" INTO TEXT "PlikEksportu" FROM "Tabela" WHERE "adres" IS NOT NULL
I wszystko byłoby pięknie, gdyby nie brak polskich znaków w wyeksportowanym pliku CSV.
Base i polskie znaki, czyli jak wymusić kodowanie UTF-8
Aby ustawić kodowanie UTF-8 w naszej bazie danych w Base należy dodać do pliku: \database\properties następujący wiersz: textdb.encoding=UTF-8.
Przykładowa zawartość pliku properties:
#HSQL Database Engine 1.8.0.10 #Fri Mar 18 20:30:03 CET 2022 hsqldb.script_format=0 runtime.gc_interval=0 sql.enforce_strict_size=true hsqldb.cache_size_scale=8 readonly=false hsqldb.nio_data_file=false hsqldb.cache_scale=13 version=1.8.0 hsqldb.default_table_type=cached hsqldb.cache_file_scale=1 hsqldb.lock_file=true hsqldb.log_size=10 modified=no hsqldb.cache_version=1.7.0 hsqldb.original_version=1.8.0 hsqldb.compatible_version=1.8.0
No dobra. A gdzie znaleźć ów plik properties?
- Zmieniamy rozszerzenie naszej bazy z NaszaBaza.odb na NaszaBaza.zip
- Wypakowujemy zawartość archiwum ZIP NaszaBaza.zip
- Gdzie plik properties jest w katalogu database
- Otwieramy go do edycji i na końcu dodajemy textdb.encoding=UTF-8 i zapisujemy.
- Pakujemy wszystko ZIP’em do NaszaBaza.zip
- Zmieniamy NaszaBaza.zip na NaszaBaza.odb
Teraz spokojnie możemy eksportować tabele do plików CSV. Z tym, że nie do końca, bo format kodowania pliku NazwaPliku.csv jest ustawione na ANSI – tu znajdziesz jak zmienić kodowanie znaków z ANSI na UTF-8.
I to by było na tyle.
Aha, jeśli eksportujemy tabele z więcej niż jednej bazy, czyli musimy zmienić kodowanie w kilku bazach, wygodniej jest napisać plik przetwarzania wsadowego, który zwolni nas z klikania. Ale o tym już wkrótce.