15

I'm trying to create a procedure that will enter data and then return a message in the OUT parameter, however i'm getting this message "argument 5 for routine hospital.alextest10 is not a variable or NEW pseudo-variable in BEFORE trigger"

i have this as my procedure:

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!

and this as my call command:

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

Can you help?

Much appreciated!

alexei7
  • 182
  • 1
  • 3
  • 11

2 Answers2

22
CALL alextest10 ('p99', 'Madeuppy', '999', 'w9', @a_message);
SELECT @a_message;
user1191247
  • 10,808
  • 2
  • 22
  • 32
-1

You should use registerOutParameter - in your case:

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

where type of cStmt is CallableStatement.