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.