[ sovabass @ 13.03.2012. 01:32 ] @
Pozdrav svima,

problem je sledeci.

Imam tabelu tabela1 sa jednom kolonom i n redova,gdje su vrijednosti redovi ulazne varijable.
Tu su i tri stored procedure koje 'nesto' rade nakon sto prime @ulaznevarijable iz tabela1 i daju/upisuju skalarnu vrijednost u tabelu 2 .

Zelim da tih n redova iz tabela1 budu ulazne varijable za ove tri procedure i da kao rezultat dobijam tabelu2 sa tri kolone,gdje svaka sp upisuje rezultat u 'svoju' kolonu.
(s tim da u jednom redu imam rezultat izvrsavanja 3 sp za jednu varijablu iz tabele1).


Takodjer,ako ubacim nove redove,zelim da se sp izvrse i nad njima tj.moze li se samim insertom u tabela1 pokrenuti izvrsavanje sp.

Ovo je vishe teorijski problem,ali bi mi puno pomoglo u daljnjem radu,s obzirom da sam pocetnik u SQL.
[ sosingus @ 13.03.2012. 10:34 ] @
ako hoces da izvrsisi proceduru za sve 'varijable' iz tabela1 treba da imas jednu extra proceduru koja prolazi kroz sve redove tabele 1 npr (firebird sintaksa)

Code:

set term;^

create procedure tabela1_iterate 
returns (
  out1 varchar(50),
  out2 varchar(50),
  out3 varchar(50)
)
as
declare variable mojavarijabla varchar(50);
begin

  for
    select
    t.varijabla
    from tabela1 t
  into :mojavarijabla
  do
    begin
      execute procedure sp1(:mojavarijabla)
      returning_values :out1;

      execute procedure sp2(:mojavarijabla)
      returning_values :out2;

      execute procedure sp3(:mojavarijabla)
      returning_values :out3;

      suspend;
    end

end^

set term^;


u svakoj bazi imas mogucnost da kreiras trigere nad nekom tabelom before/after (insert/update/delete)
[ Zidar @ 13.03.2012. 16:15 ] @
Zavisno od toga sta to procedure 'rade', moguce je ponekad problem resiti kroz kveri, upotrebom APPLY i CROSS APPLY operatora. APPLY i CROSS APPLY rade tako sto umesto procedura koristis funkcije koje vracaju tabele, moze i vise redova po pozivu. U tvom slucaju, ulaznu kombinujes pomocu APPLY sa funkcijom koja za svaki red iz ulazne tabele vrati neki rezultat (jedan ili vise redova na izlazu po jednom redu na ulazu). To ti je kao neki JOIN tabele sa funkcijom koja vraca tabelu.

Ako nam das vise konkretnih detalja, mozda nesto vise i moze da se kaze. Ako ne mogu funkcije i APPLY, onda nema drugo nego ono sto Sosingus kaze. Ali, ako u SQL bazi moraz da radis toilko proceduralnog koda, onda nesto verovatno sa dizajnom baze niej bas OK.
[ sovabass @ 13.03.2012. 18:36 ] @
Hvala na odgovorima.

Sosingus-ov prijedlog mi se cini ok,tako nesto sam i planirao uraditi.
A Zidarev prijedlog cu istraziti :).

U pitanju je ubacivanje,filtriranje i analiza podataka iz data warehouse. (nije operativna baza)

Pozz