2012-03-17 24 views
10

Próbuję utworzyć procedurę, która wprowadzi dane, a następnie zwróci komunikat w parametrze OUT, jednak otrzymuję komunikat "Argument 5 dla rutynowego szpitala" .alextest10 nie jest zmienną lub nową pseudo-zmienna w wyzwalaczu BEFORE”mysql "nie zmienna lub NOWA pseudo-zmienna" wiadomość

mam to jako mój procedury:

create procedure alextest10 
(IN a_patid CHAR(3), IN a_patnam VARCHAR(12), IN a_consno CHAR(3), IN a_ward CHAR(2), 
OUT a_message VARCHAR(50)) 
BEGIN 
set a_message = 'Database updated'; 
INSERT INTO patient (patient_id, patient_name, consultant_no, ward_no) 
values (a_patid, a_patnam, a_consno, a_ward); 
end! 

i to jako moje wezwanie polecenie:

call alextest10 ('p99', 'Madeuppy', '999', 'w9', a_message)! 

pomożesz ?

Bardzo doceniane!

Odpowiedz

14
CALL alextest10 ('p99', 'Madeuppy', '999', 'w9', @a_message); 
SELECT @a_message; 
+0

to pozbywa się komunikatu o błędzie, ale nie wyświetla komunikatu, tylko dodaje dane. jakieś pomysły? – alexei7

+1

Po prostu 'SELECT @a_message;' – nnichols

+0

genialny :) myślałem, że funkcja zrobiła coś innego. działa teraz idealnie, bardzo dziękuję – alexei7