mysql сообщение "не переменная или НОВАЯ псевдопеременная"

Я пытаюсь создать процедуру, которая будет вводить данные, а затем возвращать сообщение в параметре OUT, однако я получаю это сообщение "аргумент 5 для рутины hospital.alextest10 не является переменной или новой псевдопеременной в триггере BEFORE"

у меня есть это как моя процедура:

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!

и это как моя команда вызова:

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

Вы можете помочь?

Очень признателен!

1 ответ

Решение
CALL alextest10 ('p99', 'Madeuppy', '999', 'w9', @a_message);
SELECT @a_message;

Вы должны использовать registerOutParameter - в вашем случае:

cStmt.registerOutParameter(5, java.sql.Types.VARCHAR);

где тип cStmt - CallableStatement.

Другие вопросы по тегам