我正在尝试创建一个程序,它将输入数据,然后在OUT参数中返回一条消息,但是我收到此消息“参数5用于例行医院.alextest10不是变量或NEW伪变量之前触发“
我将此作为我的程序:
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)!
你能帮忙吗?
非常感谢!
答案 0 :(得分:18)
CALL alextest10 ('p99', 'Madeuppy', '999', 'w9', @a_message);
SELECT @a_message;
答案 1 :(得分:0)
您应该使用 registerOutParameter -在您的情况下:
cStmt.registerOutParameter(5, java.sql.Types.VARCHAR);
其中 cStmt 的类型为 CallableStatement 。