В этой главе рассказывается, как создавать и удалять процедуры в Derby.
Создание процедуры
Вы можете создать процедуру, используя инструкцию CREATE PROCEDURE.
Синтаксис
Ниже приводится синтаксис оператора CREATE PROCEDURE.
CREATE PROCEDURE procedure_name (parameter_type parameter_name1, parameter_type parameter_name2 . . . .) parameter_style;
пример
Предположим, мы создали таблицу в Дерби, как показано ниже.
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
Где выглядит класс MethodExample —
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, созданная выше.