Obsah

FBUtil

Tento program umožňuje rychlý import rozsáhlých tabulek. Ovládá se pomocí vlastního skriptovacího jazyka. Nápovědu příkazů lze zjistit příkazem help.

Import ceníku z CSV

Ukázka importu a aktualizace ceníku (proměnná prostředí např. DATABASE=localhost:/opt/firebird/fdbs/data.fdb) :

#Pripojeni databaze
cdb data $DATABASE sysdba heslo WIN1250

#klonovani pracovniho ceniku
set bail 1
cltbl data rozpocty_cenik v_rozpocty_cenik
cmd data create UNIQUE index VROZPOCTY_CENIK_P ON V_ROZPOCTY_CENIK (IDCEN)
cmd data create index VROZPOCTY_CENIK_1 ON V_ROZPOCTY_CENIK (IDDRUH)
cmd data create index VROZPOCTY_CENIK_2 ON V_ROZPOCTY_CENIK (ObjCis)
com data
cmd data delete from v_rozpocty_cenik
com data
#pridani indexu do ceniku
#cmd data create index ROZPOCTY_CENIK_9 ON ROZPOCTY_CENIK (ObjCis)
com data
set bail 0


#Import
imp data {file="cenik.csv" separator=";" encoding="WIN1250"} \
   insert into v_rozpocty_cenik (idcen, popis, mj, cena, naklady, iddruh, objcis) \
   values ('kvn'||\1, \2, \4, \5, \6, 'kvn', \1) 
info data
com data

#aktualni datum
cmd data update v_rozpocty_cenik set datum=CURRENT_TIMESTAMP
com data

#update kvn
cmd data update rozpocty_cenik d \
  set cena=(select cena from v_rozpocty_cenik s where s.objcis=d.objcis) \
  where d.iddruh='kvn' and d.objcis in (select cenik.objcis from rozpocty_cenik cenik where cenik.iddruh='kvn')
cmd data update rozpocty_cenik d \
  set naklady=(select naklady from v_rozpocty_cenik s where s.objcis=d.objcis) \
  where d.iddruh='kvn' and d.objcis in (select cenik.objcis from rozpocty_cenik cenik where cenik.iddruh='kvn')

#insert
cmd data insert into rozpocty_cenik select * from v_rozpocty_cenik s \
  where s.objcis not in (select cenik.objcis from rozpocty_cenik cenik where cenik.iddruh='kvn')

com data

#zruseni pomocne tabulky
cmd data drop table v_rozpocty_cenik;
com data

#Disconnect
ddb data

exit

Přenos montážních ceníků CxxM z pokusných dat do ostrých

cdb data localhost:/home/firebird/fdbs/data.fdb sysdba heslofb WIN1250
cdb datapok localhost:/home/firebird/fdbs/datapok.fdb sysdba heslofb WIN1250
pump datapok "select * from rozpocty_cdruh where iddruh like 'cen-%'" data "insert into rozpocty_cdruh"
info datapok
com data
pump datapok "select * from rozpocty_cenik where iddruh like 'cen-%'" data "insert into rozpocty_cenik"
com data
info datapok
cmd data delete from common_navigators where tablename='rozpocty_cenik' and iduzivatele=''
com data
pump datapok "select * from common_navigators where tablename='rozpocty_cenik' and iduzivatele=''" data "insert into common_navigators"
info datapok
com data
ddb data
ddb datapok
exit

Odstraneni nezlomitelnych mezer v UTF pomoci sed

sed 's/\xC2\xA0//g' 32.csv.utf | cstocs utf8 cp1250 >! 32.csv