Oracle & počet upravených řádků

Jan Serak sherry na pikebo.cz
Pondělí Prosinec 11 16:41:01 CET 2000


Vladimir Naprstek wrote:
> 
> Zdravím,
> potřeboval bych zjistit, kolik řádků bylo upraveno příkazem UPDATE. Pro
> klauzuli RETURNING jsem našel v nápovědě, že má tento požadavek nahradit
> vrácením hodnoty nějakého atributu. Jenže to lze použít, pokud dotaz
> upraví jen jeden řádek. Víceřádkové dotazy hlásí chybu (vrácena
> víceřádková hodnota), sum() také nelze použít (zde nelze použít
> skupinovou funkci)...
> 
> Máte někdo nějaký JEDNODUCHÝ postup?
> Použít SELECT SUM(1) FROM....
> a následně UPDATE ....
> se stejnými podmínkami WHERE se mi nechce (a navíc mezi jednotlivými
> příkazy se může mnoho věcí změnit a nasadit transakci na tak obyčejnou
> věc...)

Kazdy cursor v PL/SQL ma atribut %rowcount. DML prikazy, ktere nejsou
v explicitnim kurzoru, jsou automaticky povazovany za implicitni kurzor
s nazvem sql. Takze to, co potrebujete je:

	update ...
	pocet_updatovanych_zaznamu:=sql%rowcount;


						Jan Serak


Další informace o konferenci Test