Slozene typy v PL/pgSQL

Pavel Stehule stehule na kix.fsv.cvut.cz
Čtvrtek Červen 30 20:50:54 CEST 2005


On Thu, 30 Jun 2005, [Windows-1250] LukᚠVadinský wrote:

> Diky moc za odpoved.
> 
> Ja jsem samozrejme EXECUTE pouzil, v pripade FOR je vsechno ok, funguje [FOR var_row IN EXECUTE 'SELECT * FROM  ' || quote_ident(var_table1) LOOP], ale prave v tom dalsim dotazu UPDATE jsem to zkusil nasledovne
> EXECUTE 'UPDATE table2 SET ' || var_table2_atribY || ' = ' || var_row.var_table1_atribX || ' WHERE table2_pk = var_row.table1_pk';
> Jde mi prave o tu cast 'var_row.var_table1_atribX', kde jmeno tabulky i jmeno sloupce jsou obe promenne. Ja proste nevim, jak to mam zapsat. Kdyz je to napsane takhle, tak mi to hlasi, ze promenna 'var_row' nema pole 'var_table1_atribX', tedy asi nedokaze ten string za teckou cist jako promennou :-(. Asi tam neco pisu spatne. 
> Kazdopadne dekuji za odpoved. Poradite mi, prosim, jak vyresit vyse uvedene?
> 
> Dekuji, hezky den. 
> 
> Lukas
> 

Jelikoz nemam predchozi mail tak nevim jestli budu v obraze. Co muzu 
poradit pri EXECUTE (rozhodne tam neni zadne omezeni)

_prom := 'UPDATE '||table||' SET ....';
RAISE NOTICE '%', _prom;
EXCECUTE _prom;

Proste se podivejte, co tam skutecne posilate,

Pavel



Další informace o konferenci Databases