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