Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa pozivanjem procedure...

[es] :: MySQL :: Problem sa pozivanjem procedure...

[ Pregleda: 1271 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

jmarko2002
Jovanovic Marko
Uzice

Član broj: 10271
Poruke: 29
*.dynamic.sbb.rs.



Profil

icon Problem sa pozivanjem procedure...13.02.2012. u 17:00 - pre 148 meseci
Imam kreiranu proceduru koja bi trebalo da vrsi proveru i upis podataka, e sad nastaje problem kako da pozovem jednu proceduru vise puta u jednom upitu i da pozove sa tim vrednostima istu proceduru
Ovo je otprilike skracena procedura koju koristim...

CREATE DEFINER=`root`@`%` PROCEDURE `probnaprocedura`(idkolona int, vrednost decimal(11,2))
BEGIN
if
...
else
select probnaprocedura ((select xxx from t1 where t1.id=idkolona),vrednost)
end if
END

Da li je ovo nekako moguce izvesti? Kada se pozivaju procedure, dozvoljen je maksimalno jedan red, tj. ne mogu da koristim SELECT...

Hvala puno!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Problem sa pozivanjem procedure...13.02.2012. u 17:53 - pre 148 meseci
SET max_sp_recursion_depth=###;

obrati paznju da ne mozes rekurzivno da pozivas trigger ni stored funkciju, samo stored proceduru


 
Odgovor na temu

jmarko2002
Jovanovic Marko
Uzice

Član broj: 10271
Poruke: 29
*.dynamic.sbb.rs.



Profil

icon Re: Problem sa pozivanjem procedure...13.02.2012. u 18:37 - pre 148 meseci
Ok, jasno mi je da treba da koristim stored proceduru.

Sta se desava sa delom gde mi treba upit select u pozivanju procedure?

CALL PROCEDURE((SELECT....),'XXX','XXX')

izbacuje mi gresku da je dozvoljen maksimalno jedan red u podupitu, kako ovo drugacije mogu da postavim?
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Problem sa pozivanjem procedure...14.02.2012. u 00:03 - pre 148 meseci
aj napisi ceo upit posto uopste ne kontam sta pitas ...

da li prenosis upit (String) u stored proceduru ili prenosis vrednost select-a u stored proceduru?
 
Odgovor na temu

jmarko2002
Jovanovic Marko
Uzice

Član broj: 10271
Poruke: 29
*.dynamic.sbb.rs.



Profil

icon Re: Problem sa pozivanjem procedure...15.02.2012. u 14:33 - pre 148 meseci

CREATE DEFINER=`root`@`%` PROCEDURE `probnaprocedura`(idkolona int, vrednost decimal(11,2), provera varchar(2))
BEGIN
if provera='DA' then
update set t2 (...)
else
select probnaprocedura ((select xxx from t1 where t1.provera='NE'),vrednost, 'NE')
end if
END
Treba mi da prenesem vrednost select-a u proceduru, (select t1.id from t1 where t1.provera='NE').
Problem je sto ima vise zapisa iz baze koje treba proslediti u proceduru da bi se ti zapisi azurirali. Trigger mi ne odgovara, zbog nekih parametara koje samo mogu kroz proceduru da obradim...

Orginalna procedura je isuvise zamrsena, tako da je ovo neka jednostavnija forma onoga sto meni konkretno treba.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: Problem sa pozivanjem procedure...15.02.2012. u 15:00 - pre 148 meseci
da bi pozvao proceduru sa vrednostima iz select-a radis select into pa tu variablu stavis u parametar procedure
 
Odgovor na temu

jmarko2002
Jovanovic Marko
Uzice

Član broj: 10271
Poruke: 29
*.dynamic.sbb.rs.



Profil

icon Re: Problem sa pozivanjem procedure...15.02.2012. u 16:32 - pre 148 meseci
Problem je sto ja u select upitu imam kao rezultat vise redova...
Da je jedan to mi ne bi bio problem.

 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: Problem sa pozivanjem procedure...15.02.2012. u 16:43 - pre 148 meseci
ne mozes da prosledis vise redova stored proceduri. niti ta tvoja procedura ume da procita vise redova. napravis kursor pa prodjes kroz result set i prozoves proceduru za svaki red...

generalno - nesto si ti tu mnogo lose osmislio, to si trebao da uradis sa trigerima (a to sto kazes da ti trigeri ne rade, to dodatno znaci da si lose osmislio)
 
Odgovor na temu

[es] :: MySQL :: Problem sa pozivanjem procedure...

[ Pregleda: 1271 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.