Apache Derby - Verfahren

In diesem Kapitel erfahren Sie, wie Sie Prozeduren in Derby erstellen und löschen.

Prozedur erstellen

Sie können eine Prozedur mit der Anweisung CREATE PROCEDURE erstellen.

Syntax

Es folgt die Syntax der Anweisung CREATE PROCEDURE.

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

Beispiel

Angenommen, wir haben in Derby eine Tabelle erstellt, wie unten gezeigt.

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

Und fügte Werte wie folgt ein -

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

Im folgenden Beispiel wird eine Prozedur mit dem Namen Update_Procedure erstellt, die JAVA-Parameter akzeptiert.

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

Wo die ProcedureExample-Klasse aussieht -

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

Sie können die Liste der Verfahren mit überprüfen SHOW PROCEDURES Abfrage.

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

Hier können Sie die neu erstellte Prozedur beobachten.

Prozedur löschen

Sie können eine Prozedur mit der Anweisung DROP PROCEDURE löschen.

Syntax

Es folgt die Syntax der Anweisung DROP PROCEDURE.

DROP PROCEDURE procedure_name;

Beispiel

Im folgenden Beispiel wird eine oben erstellte Prozedur mit dem Namen Update_Procedure gelöscht.

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