CREATE VIRTUAL TABLE virt_table USING VirtualText(file, ISO-8859-2, 1, TAB, DOUBLEQUOTE, " ");
Igaz ugyan, hogy ez felvesz egy kéretlen ROWNO oszlopot, de ezt lehet törölni, másrészt meg nem sok vizet zavar. Ez első körben egy csak-olvasható tábla lesz, de create table vmi as select * révén át lehet mindent tölteni egy teljes értékű, írható-törölhető táblába.
Vigyázz! Az ISO-8859-2-es kódolású karaktereket kérdezés nélkül UTF-8-asra alakítja a spatialite! (Az üres cellaértékeket meg NULL-á).
Egy hasonló megoldást kínál az apsw (another Python SQLite 3 wrapper) autoimportja: http://apidoc.apsw.googlecode.com/hg/shell.html
- szz blogja
- A hozzászóláshoz be kell jelentkezni
Hozzászólások
Hm, érdekes. közi.
- A hozzászóláshoz be kell jelentkezni
Ha esetleg a grafikus környezetet preferálja valaki, akkor a KNIME, vagy a RapidMiner is jó -ingyenes, open source- alternatíva lehet. Parancssorban pedig az R szintén népszerű.
- A hozzászóláshoz be kell jelentkezni
Ket kerdes:
- A spatialite-nak csak az extension-jet vagy a CLI cuccat is hasznaltad?
- A vegeredmeny normal sqlite3 adatbazis lesz, vagy csak a spatialite eszi meg onnantol?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
A spatialite-öt simán "alapállapotában" (azaz pl. Ubuntuban apt-get install spatialite-bin után kapott állapotában) hívtam meg parancssorból, adatbázisnévvel:
spatialite db1
spatialite> CREATE VIRTUAL TABLE virt1 USING VirtualText(myfile, ISO-8859-2, 1, TAB, DOUBLEQUOTE, " ");
spatialite> CREATE TABLE t1 AS select * from virt1;
A végeredményként kialakuló "db1" adatbázist meg tudom hívni simán sqlite3-mal is.
Azonban csak az "átalakított" táblát (t1) ismeri föl, a "beolvasóst" nem:
sqlite> select * from virt1;
Error: no such module: VirtualText
sqlite> select * from t1 limit 1;
0|45947991|K3999937|22000|2|22795|EGYN|3||XTO
Becsületére legyen mondva, hogy típushelyesek az oszlopok; azaz ott van szám, ahol annak van a helye:
CREATE TABLE t1(
ROWNO INT, ez INT, az TEXT, acc INT, seq INT, prd TEXT, pwy TEXT, rnd INT, off TEXT, cat TEXT
);
- A hozzászóláshoz be kell jelentkezni
Nagyon genyo leszek: a datumokat is felismeri?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Az sqlite3-ban nincs dátum típus, csak ezek. Kifejezetten kitér arra a hivatkozott oldal, hogy a dátum típust egészként, valósként vagy szövegként lehet ábrázolni. :-)
- A hozzászóláshoz be kell jelentkezni
Igazad van, ezt mindig elfelejtem. Automatikusan mire CAST-olja, egeszre?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Ha lehet, egészre alakítja a dátumot. Egyébként: ha valósra lehet, akkor arra. Ha másra nem lehet, akkor szövegesre.
- A hozzászóláshoz be kell jelentkezni
Koszi.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni