FreePascal (FPC) a Lazarus > Obecné
SQLite - prevod stĺpca s UFT8 textom na malé písmená
(1/1)
Slavomir:
Ahojte,
importujem v SQLite tabuľku z jednej databázy do druhej (mám ju pripojenú cez ATTACH), pričom potrebujem skonvertovať celý jeden stĺpec s UTF8 znakmi na malé písmená.
Dá sa konvertovať jedným príkazom celý stĺpec plný textu (ale včítane UTF8 znakov !) na malé písmená naraz ?
Vzhľadom na obmedzenie príkazu LOWER(), ktorý konvertuje len ASCII znaky, si to viem urobiť len okľukou cez dotaz SELECT, uložiť záznamy do nejakého textového reťazca a potom spätným príkazom UPDATE s konverziou textu cez funkciu AnsiLowerCase(), ale hľadám rýchlejšie riešenie ;D.
Ďakujem.
Jan Fiala:
Kolik je tam záznamů a jak často se import provádí?
Pokud je to častější napiš si utilitku, která se připojí, projde to a záznam po záznamu to nainsertuje do cílové tabulky.
Další možností je použít UPDATE
Nejprve LOWER()
pak postupně REPLACE(), kde budeš přepisovat jednotlivé znaky
pf1957:
Nevim, co presne resis, ale my z duvodu rychlosti a nezavislosti na konkretnim typu RDBMS jsme podobne konverze delali hned na vstupu pri porizovani dat na strane klienta a do DB to ukladali do dvou ruznych atributu (sloupecku): jeden s nativnim tvarem, druhy treba lowercased a jeste treba s orezanymi nabodenicky apod.
Jinak pro SQLite existuje ICU extension, ale s tim zkusenosti nemam.
Slavomir:
Záznamov je v databáze cca 20 tisíc a import sa robí veľmi zriedkavo. Takže to zatiaľ riešim výberom údajov z celého stĺpca z jednej tabuľky do TStringListu, tam to skonvertujem a vložím do inej tabuľky. Netrvá to dlho, len som chcel optimalizovať kód čo najviac (ako som písal - jedným SQL príkazom).
Prepisovať jednotlivé znaky mi pripadá komplikovanejšie, rovnako ako študovať iné doplnkové funkcie (ICU extension).
I tak vďaka za tipy.
Navigace
[0] Seznam témat
Přejít na plnou verzi