abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 13:33 | Nová verze

Po sedmi měsících vývoje od vydání verze 5.7 byla vydána verze 5.8 (YouTube) toolkitu Qt. Z novinek lze zmínit například Qt Lite pro vestavěná zařízení. Nově jsou plně podporovány moduly Qt Wayland Compositor (YouTube) a Qt SCXML (YouTube). Současně byla vydána verze 4.2.1 integrovaného vývojového prostředí (IDE) Qt Creator.

Ladislav Hagara | Komentářů: 0
dnes 11:52 | Pozvánky

Lednový Prague Containers Meetup se koná ve čtvrtek 26. ledna 2017 od 18:00 v Apiary, Pernerova 49, Praha 8. Přijďte se podívat na přednášky o Enterprise Kubernetes a Jenkins as a code.

little-drunk-jesus | Komentářů: 0
dnes 11:40 | Pozvánky

Program letošního ročníku konference Prague PostgreSQL Developer Days, která se koná již 15. a 16. února 2017 na ČVUT FIT, Thákurova 9, Praha 6, byl dnes zveřejněn. Najdete ho na stránkách konference včetně anotací přednášek a školení. Registrace na konferenci bude otevřena zítra (24. ledna) v brzkých odpoledních hodinách.

TomasVondra | Komentářů: 0
včera 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
včera 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
21.1. 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
21.1. 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
20.1. 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 6
20.1. 15:51 | Komunita

Mozilla.cz informuje, že nástroje pro webové vývojáře se možná oddělí od Firefoxu a stanou doplňkem. Nástroje pro webové vývojáře prošly velkým přepisem a tým, který se stará o jejich vývoj, by uvítal možnost jejich častějších aktualizacích nezávisle na vydávání nových verzí Firefoxu.

Ladislav Hagara | Komentářů: 10
20.1. 07:00 | Humor

Čtenářům AbcLinuxu vše nejlepší k dnešnímu Dni zvýšení povědomí o tučňácích (Penguin Awareness Day).

Ladislav Hagara | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (11%)
 (2%)
 (73%)
 (4%)
 (10%)
Celkem 369 hlasů
 Komentářů: 25, poslední 21.1. 13:34
Rozcestník
Reklama

Dotaz: plpgsql a execute

11.5.2005 16:36 stradivarius
plpgsql a execute
Přečteno: 111×
ahoj, potreboval bych zmenit zaznam v tabulce pomoci funkce v plpgsql. UPDATE je sestavovan v cyklu FOR a vypada takto:

EXECUTE ''UPDATE nodes_wgs set ycoord_float = '' || y || '' WHERE gid = '' || zaznam.gid || '';'';

prikaz se jakoby provadi, ale nic se neupdatne. Kdyz si dam stejny retezec vypisovat na obrazovku, je v poradku, napr.: UPDATE nodes_wgs set ycoord_float = 50.0675771 WHERE gid = 6002;

nesetkali jste se nekdo s timhle problemem? Asi to bude nejaka hloupost.. Dik

Odpovědi

11.5.2005 17:26 eXEden | skóre: 13 | blog: Plkoviny | Praha
Rozbalit Rozbalit vše Re: plpgsql a execute
Nevim sice, jak to volas, ale nechybi tam nekde commit?
11.5.2005 23:43 stradivarius
Rozbalit Rozbalit vše Re: plpgsql a execute
ahoj, nemam transakci. je to normalni UDF v Pl/PgSQL, kterou volam z shellu psql. Jde o to, aby se ten update udelal rychle. Kdyz toto napisu v bashi tak je to na dva dny, protoze dat je moc. Souradnice mam 10000000x vetsi nez je wgs84 (napr. misto 15.12345 mam 151234560) a chci je tedy vlozit do noveho sloupce xcoord_float ve spravne velikosti. Funkce vypada tak:

CREATE FUNCTION preved_wgs() RETURNS void AS '

DECLARE

zaznam nodes_wgs%ROWTYPE;

x nodes_wgs.xcoord_float%TYPE;

querytext1 varchar(100);

BEGIN

FOR zaznam IN SELECT * from nodes_wgs LOOP

x := zaznam.xcoord / 10000000.0;

EXECUTE ''UPDATE nodes_wgs set xcoord_float = '' || x || '' WHERE gid = '' || zaznam.gid || '';'';

querytext1 := ''UPDATE nodes_wgs set xcoord_float = '' || x || '' WHERE gid = '' || zaznam.gid || '';'';

UPDATE nodes_wgs SET xcoord_float = x WHERE gid = zaznam.gid;

RAISE INFO ''querytext1 is %'', querytext1;

END LOOP;

RETURN "";

END'

LANGUAGE 'plpgsql';

pri spusteni funkce to normalne vypisuje, co ma, tzn spoustu dat:-) UPDATE, ktery si nechavam vypisovat jako info mi funguje, kdyz ho zkopiruju do psql. Ale ten EXECUTE se proste neprovede.. Ten vypis:

INFO: updating gid no. 9080

INFO: querytext1 is UPDATE nodes_wgs set xcoord_float = 14.4307393 WHERE gid = 9080;

.

.

.

atd. sorry za hnusny format ale na "html znacky" dnes nejak nemam chut:-)
12.5.2005 06:44 Pavel 'lingeek' Szalbot | skóre: 54 | Třinec
Rozbalit Rozbalit vše Re: plpgsql a execute
Řekl bych, že místo tvého EXECUTE "UPDATE .....

PREPARE plan (BIGINT, BIGINT) AS UPDATE nodes_wgs set xcoord_float = $1 WHERE gid = $2; EXECUTE plan (x, zaznam.gid);

-> Chybí mi tam PREPARE, které v téhle situaci stejně postrádá smysl, pokud ovšem daný "plán" neprovádíš častěji-

BTW. dal bych si pozor na převody, ale o tom asi víš.
Math, as Barbie says, is hard.
12.5.2005 16:32 stradivarius
Rozbalit Rozbalit vše Re: plpgsql a execute
Ahoj, dik za tip, nicmene EXECUTE v plpgsql ma jiny vyznam nez v SQL, aspon tak chapu manual http://www.postgresql.org/docs/7.4/interactive/plpgsql-statements.html

Bohuzel se mi to nepovedlo vyresit tak, jak jsem chtel - uz jsem nemel cas to resit, tak jsem to provedl jednim priisernym hackem, se kterym se nebudu ani chlubit. Rekl bych ze problem byl v prevodech, jak pises. Mam pocit, jako by EXECUTE v plpgsql nedavalo hlasky o chybach a varovani. Presto by me to zajimalo, dynamicke query v UDF budu jeste do budoucna resit. Pokud byste tedy nekdo vedel, kde jsem mel chybu? Dik
13.5.2005 08:58 Pavel 'lingeek' Szalbot | skóre: 54 | Třinec
Rozbalit Rozbalit vše Re: plpgsql a execute
Máš pravdu... EXECUTE mi chybové hlášky vypisuje, tak zkus ještě SET client_min_messages=INFO;

Chyba bude asi opravdu v těch převodech (zkus typ bigint, ale vidím, že budeš potřebovat spíše numeric) - kód mi přijde v pořádku, ale ... Pokud dobře vidím, tak jen updatuješ celou tabulku nodes_wgs a konkrétně jen přenastavuješ xcoord_float na jinou hodnotu. To se dá dobře udělat příkazem: UPDATE nodes_wgs SET xcoord_float=xcoord*10000000.0. Nebo mi zase něco uteklo? Btw. ten update bude stejně pomalý (a s typem numeric ještě pomalejší).
Math, as Barbie says, is hard.
16.5.2005 11:04 stradivarius
Rozbalit Rozbalit vše Re: plpgsql a execute
To se dá dobře udělat příkazem: UPDATE nodes_wgs SET xcoord_float=xcoord*10000000.0.
mas pravdu:-), ale za tim pak jeste nasledovalo vlozeni bodu POINT v postgisu, ktere bohuzel nejde takto a navic setavovani retezce query budu potrebovat dale. Vyresil jsem to nakonec jinak:

CREATE OR REPLACE FUNCTION preved_point(integer, float, float) RETURNS void AS '

DECLARE

ide integer;

x float;

y float;

BEGIN

ide := $1;

x := $2;

y := $3;

UPDATE nodes_wgs SET nodes_geom = Geomfromtext((''POINT('' || x ||'' '' || y || '')'' ), 4326) WHERE gid = ide;

RETURN;

END

' LANGUAGE PLPGSQL;

a potom samozrejme:

select preved_point(gid, xcoord_float, ycoord_float) from nodes_wgs;

Co se tyce rychlosti, bylo to do dvou minut (96000 zaznamu, PIII+256RAM). Sestavoveni dotazu, tak jak jsem uvedl v prvnim prispevku, jsem bohuzel nerozchodil. Zdravim

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.