本章教您如何在Derby中创建和删除存储过程。
您可以使用CREATE PROCEDURE语句创建一个存储过程。
以下是CREATE PROCEDURE语句的语法。
链接:https://www.learnfk.comhttps://www.learnfk.com/derby/apache-derby-procedures.html
来源:LearnFk无涯教程网
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'), ('Learnfk', 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
其中Procedure Example类看起来像-
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
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)