Apache Derby - 儲存過程



本章將指導您如何在 Derby 中建立和刪除儲存過程。

建立儲存過程

您可以使用 CREATE PROCEDURE 語句建立儲存過程。

語法:

以下是 CREATE PROCEDURE 語句的語法。

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

示例:

假設我們在 Derby 中建立了一個如下所示的表。

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

並按如下方式插入值 -

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

以下示例建立一個名為 Update_Procedure 的過程,該過程接受 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

Where ProcedureExample 類如下 -

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();
   }
}

您可以使用 **SHOW PROCEDURES** 查詢來校驗儲存過程列表。

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&
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 

在這裡,您可以觀察到新建立的儲存過程。

刪除儲存過程

您可以使用 DROP PROCEDURE 語句刪除儲存過程。

語法:

以下是 DROP PROCEDURE 語句的語法。

DROP PROCEDURE procedure_name;

示例:

以下示例刪除了上面建立的 Update_Procedure 儲存過程。

ij> DROP PROCEDURE Update_Procedure;
> 0 rows inserted/updated/deleted
廣告
© . All rights reserved.