- Apache Derby 教程
- 阿帕奇德比 - 主页
- Apache Derby - 简介
- Apache Derby - 部署模式
- Apache Derby - 环境设置
- Apache Derby - 工具
- Apache Derby - 语法
- Apache Derby - 数据类型
- Apache Derby - 创建表
- Apache Derby - 删除表
- Apache Derby - 插入数据
- Apache Derby - 检索数据
- Apache Derby - 更新数据
- Apache Derby - 删除数据
- Apache Derby -Where 子句
- Apache Derby - GROUP BY 子句
- Apache Derby - 按条款排序
- Apache Derby -having 子句
- 修改表语句
- Apache Derby - 德比索引
- Apache Derby - 程序
- Apache Derby - 架构
- Apache Derby - 触发器
- Apache Derby 有用资源
- Apache Derby - 快速指南
- Apache Derby - 有用的资源
- Apache Derby - 讨论
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
其中 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