Ich versuche, eine gespeicherte Prozedur mit Java aufzurufen.Das Anzeigen von Parameternummer 2 ist kein OUT-Parameter beim Aufrufen einer Prozedur mit Java
Ich bin ein Anfänger in gespeicherten Verfahren. versucht also die gleiche erste in mysql Terminal
mysql> delimiter //
mysql> create procedure get_EmployeeName(IN cust_id INT,OUT cust_name varchar(20))
-> begin
-> select name into cust_name from CUSTOMERS where id = cust_id;
-> end //
Query OK, 0 rows affected (0.11 sec)
mysql> delimiter ;
mysql> call get_EmployeeName(1,@cust_name);
Query OK, 1 row affected (0.08 sec)
mysql> select @cust_name;
+------------+
| @cust_name |
+------------+
| A |
+------------+
1 row in set (0.01 sec)
Ich bin in der Lage, die Ausgabe zu erhalten.
Jetzt versucht mit Java.
erstellen Prozeduranweisung
stmt.execute("create procedure mydb.WhoAreThey(IN id INT, OUT name VARCHAR(20)) begin select Name into name from employees where EmployeeID = id; end");
Procedure Call
Nicht sicher, ob mein Prozeduraufruf richtig oder falsch ist
String IN = "1000";
cs = con.prepareCall("{call WhoAreThey(?,?)}");
cs.setString(1, IN);
cs.registerOutParameter(2, Types.VARCHAR);
cs.execute();
Vor Aufruf gibt einem sqlexception „SQLException: Parameternummer 2 ist kein OUT-Parameter "
UPDATE
arbeitete von "cs = con.prepareCall (" {call mydb.WhoAreThey (,)?} ") Nennen;"
Aber wenn ich tat wählen Sie @ Name .. es zeigt "Null".
erwartete ich meine, wie "David Walker" aus der Tabelle Mitarbeiter als EmployeeID 1000 ist
mysql> select * from employees;
+------------+--------------+--------+---------------------+
| EmployeeID | Name | Office | CreateTime |
+------------+--------------+--------+---------------------+
| 1000 | David Walker | HQ101 | 2016-12-21 13:00:37 |
| 1001 | Paul Martin | HQ101 | 2016-12-21 13:00:37 |
+------------+--------------+--------+---------------------+
2 rows in set (0.00 sec)
Bin ich in einer falschen Weise Prüfung (wählen @name)
Sind Sie sicher, dass der gespeicherte Proc erstellt wurde? – shmosel
@shmosel: Ja, es ist erstellt. überprüft mit show procedure status. Dort kann ich "WhoAreThey" als 1 Eintrag sehen. –
Ihr erster Parameter ist eine Ganzzahl und Sie setzen einen String hinein. Ist das ein Problem? – PVR