Đối với bài tập về nhà tôi phải tạo ra một pl/sql stored procedure để thêm một thành viên facutly đến một cơ sở dữ liệuLàm thế nào để gọi một thủ tục lưu trữ trong JDBC
CREATE OR REPLACE PROCEDURE ADDFACULTYDEPTSAL
(facid IN NUMBER,
facname IN VARCHAR,
depID IN NUMBER)
AS
sal NUMBER;
BEGIN
CALCSALDEPT(depID, sal);
IF sal >= 50000
THEN
sal := sal*.9;
ELSE
IF sal >= 30000
THEN
sal := sal*.8;
END IF;
END IF;
INSERT INTO FACULTY(fid, fname, deptid, salary)
VALUES(facid, facname, depID, sal);
END ADDFACULTYDEPTSAL;
Sau khi làm điều đó, tôi cần phải thực hiện một cuộc gọi java cho thủ tục nói, mà tôi đã mệt mỏi để làm với:
Statement stmt = dbConnection.createStatement();
String in;
if(a == 1){
in = "ADDFACULTYDEPTSAL("
+ fid.getText() + "','"
+ fname.getText() + "','"
+ did.getText() + "')";
} else {
in = "ADDFACULTYUNISAL("
+ fid.getText() + "','"
+ fname.getText() + "','"
+ did.getText() + "')";
}
stmt.executeQuery(in);
Tôi có ở trên trong một khối bắt thử mà giữ ném một lỗi. Tôi đã thử nhiều biến thể trên chuỗi "trong" dựa trên những gì tôi nhìn thấy trên các trang web khác: trong = "{gọi ADDFACULTYDEPSAL ... trong =" gọi ADDFACULTYDEPSAL ...
tìm ở đây: MySQL Connector Guide Tôi cũng đã cố gắng thay đổi tuyên bố thành tuyên bố có thể gọi được như vậy:
CallableStatement stmt;
if(a == 1){
stmt = dbConnection.prepareCall("{call ADDFACULTYDEPTSAL(?,?,?)}");
} else {
stmt = dbConnection.prepareCall("{call ADDFACULTYUNISAL(?,?,?)}");
}
Tuy nhiên, cố gắng theo cách này dường như không hoạt động vì tôi cần chuyển nhiều hơn hai biến vào quy trình.
Có ai cho tôi biết tôi đang làm gì sai không?
đó làm việc. Cảm ơn bạn. – Eric