Slozene typy v PL/pgSQL
Lukáš Vadinský
lukin na pef.czu.cz
Čtvrtek Červen 30 13:59:01 CEST 2005
Ahoj,
mohl byste mi nekdo, prosim, poradit s nasledujici funkci?
CREATE OR REPLACE FUNCTION copy()
RETURNS void AS $$
DECLARE
var_row RECORD;
BEGIN
FOR var_row IN SELECT * FROM table1 LOOP
UPDATE table2 SET table2_atribY = var_row.table1_atribX WHERE table2_pk = var_row.table1_pk;
END LOOP;
RETURN void;
END;
$$ LANGUAGE plpgsql;
Tato funkce postupne nacita vsechny hodnoty 'table1_atribX' z tabulky 'table1' a updatuje jimi hodnoty 'table2_atribY' z tabulky 'table2' pri vzajemne rovnosti primarnich klicu 'table2_pk = table1_pk'.
Chtel bych tu funci dynamizovat tak, aby bylo mozne poslat ji jmeno zdrojove tabulky 'table1', nazev atributu 'table1_atribX' a cilovy atribut 'table2_atribY' jako parametry. (cilova tabulka 'table2' je nemenna) Hlavicka funkce by tedy vypadala nasledovne:
copy(var_table1 varchar, var_table1_atribX varchar, var_table2_atribY varchar)
Ja jsem neprisel na to, jak mohu ve funkci pouzit zapis typu: $1.$2 (promenna1.promenna2), abych tim nahradil var_row.table1_atribX za var_row.var_table1_atribX.
Nevite nekdo?
Predem diky za odpovedi, Lukas V. ;-)
Další informace o konferenci Test