Apache Derby - Thủ tục

Chương này hướng dẫn bạn cách tạo và bỏ các thủ tục trong Derby.

Tạo một thủ tục

Bạn có thể tạo một thủ tục bằng cách sử dụng câu lệnh CREATE PROCEDURE.

Cú pháp

Sau đây là cú pháp của câu lệnh CREATE PROCEDURE.

CREATE PROCEDURE procedure_name (parameter_type parameter_name1, parameter_type
parameter_name2 . . . .) parameter_style;

Thí dụ

Giả sử, chúng ta đã tạo một bảng trong trận Derby như hình dưới đây.

CREATE TABLE Emp ( Id INT NOT NULL GENERATED ALWAYS AS IDENTITY,
   Name VARCHAR(255),
   Salary INT NOT NULL,
   Location VARCHAR(255),
   Phone_Number BIGINT
);

Và chèn các giá trị vào đó như sau:

INSERT INTO Employees(Name, Salary, Location) VALUES
('Amit', 30000, 'Hyderabad'),
('Kalyan', 40000, 'Vishakhapatnam'),
('Renuka', 50000, 'Delhi'),
('Archana', 15000, 'Mumbai'),
('Trupthi', 45000, 'Kochin')";

Ví dụ sau tạo một thủ tục có tên Update_Procedure chấp nhận các tham số JAVA.

ij> CREATE PROCEDURE Update_Procedure(IN id INTEGER, IN name VARCHAR(10))
PARAMETER STYLE JAVA READS SQL DATA LANGUAGE JAVA EXTERNAL NAME
'ProcedureExample.testProc';
> 0 rows inserted/updated/deleted

Trường hợp lớp ProcedureExample trông giống như:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class ProcedureExample {
   public static void testProc(int salary, String name) throws Exception {
      String connectionURL = "jdbc:derby:MYDATABASE;create=true";
      Connection conn = DriverManager.getConnection(connectionURL);
      String query = "UPDATE Employees SET SALARY = ? WHERE NAME = ?";
      PreparedStatement pstmt = conn.prepareStatement(query);
      pstmt.setInt(1, salary);
      pstmt.setString (2, name);
      pstmt.executeUpdate();
   }
}

Bạn có thể xác minh danh sách các thủ tục bằng cách sử dụng SHOW PROCEDURES truy vấn.

ij> SHOW PROCEDURES;
PROCEDURE_SCHEM |PROCEDURE_NAME |REMARKS
------------------------------------------------------------------------
APP |UPDATE_PROCEDURE |ProcedureExample.te&
SALES |EXAMPLE_ PROCEDURE |com.example.sales.c&
SQLJ |INSTALL_JAR |org.apache.derby.ca&
SQLJ |REMOVE_JAR |org.apache.derby.ca&
SQLJ |REPLACE_JAR |org.apache.derby.ca&
SYSCS_UTIL |SYSCS_BACKUP_DATABASE |org.apache.derby.ca&
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Tại đây bạn có thể quan sát thủ tục mới được tạo.

Bỏ qua một thủ tục

Bạn có thể bỏ một quy trình bằng cách sử dụng câu lệnh DROP PROCEDURE.

Cú pháp

Sau đây là cú pháp của câu lệnh DROP PROCEDURE.

DROP PROCEDURE procedure_name;

Thí dụ

Ví dụ sau loại bỏ một thủ tục có tên Update_Procedure được tạo ở trên.

ij> DROP PROCEDURE Update_Procedure;
> 0 rows inserted/updated/deleted