Apache-derby-procedures
提供:Dev Guides
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')";
次の例では、JAVAパラメータを受け入れるUpdate_Procedureという名前のプロシージャを作成します。
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