PDA

View Full Version : [PL/SQL] - select count(1)


w.tommasi
08-04-2008, 17:52
Ciao a tutti.

Guardate questa procedura :

create or replace procedure prc_check_estrattori_bus is

cursor c1 is
select * from check_estrattori_bus order by v_cod_interfaccia;

riga c1%rowtype := null;
totale number(10) := 0;

begin

open c1;
loop
fetch c1
into riga;
exit when c1%notfound;
select count(*) into totale from riga.v_cod_interfaccia;
dbms_output.put_line(totale);
end loop;
close c1;

end prc_check_estrattori_bus;

Io vorrei ottenere la count di ogni tabella presente nel cursore inziale per confrontarla con dei valori di soglia. Solo che così fatta non la riesco nemmeno a compilare perchè oracle mi dice giustamente che riga.v_cod_interfaccia non è una tabella. Ok, sono perfettamente d'accordo con lui, ma come posso parametrizzare la count in maniera da rendere i controlli dimanici sulla base della tabella check_estrattori_bus che contiene la lista delle tabelle da monitorare ?

Spero di essermi stato spiegato.

DENGHIU !

;)

shinya
08-04-2008, 18:44
puoi usare l'sql dinamico...guarda lo statement "execute immediate...using..."

adesso non ho un esempio sotto mano, rispondo dal wii :)

w.tommasi
08-04-2008, 21:03
In realtà sotto consiglio di qualche ex collega ho già provato con l'execute immediate ma non va lo stesso.

Forse continuo a sbagliare qualcosa io.

La procedura viene compilata ed eseguita, solo che con l'execute immediate non riesco a passare il valore della count ad una variabile numerica per farci gli opportuni controlli, la query stampandola viene corretta, ma il risultato non riesco ad appoggiarmelo su una variabile.

:confused: :rolleyes:

shinya
08-04-2008, 21:27
http://www.adp-gmbh.ch/ora/plsql/exec_immediate.html

Guarda il primo esempio.

w.tommasi
09-04-2008, 10:47
Ci provo e ti faccio sapere !

Intanto grazie !

;)

w.tommasi
09-04-2008, 11:34
http://www.adp-gmbh.ch/ora/plsql/exec_immediate.html

Guarda il primo esempio.

:ave: :ave: :ave: :cincin: :mano: :winner: :yeah:

GRAZIEEEEEEEEEEEEEEEEEE !!!!!!!!!!!!!!!

Sembra che sia andata !!!!!

DENGHIU !

;)