728x90
반응형
2024-04-04
PL/SQL :
- Procedural Language/Structured Query Language의 약자로, 오라클 데이터베이스에서 사용되는 프로시저형 언어입니다. PL/SQL은 SQL 문장을 포함하며, 프로그래밍적인 기능을 수행할 수 있도록 구조화되어 있습니다.
PL/SQL은 다음과 같은 주요 특징을 갖습니다:
- 절차적 프로그래밍 지원: PL/SQL은 변수, 조건문, 반복문, 예외 처리 등 절차적 프로그래밍의 기능을 제공. 이를 통해 데이터베이스 내에서 복잡한 로직을 구현
- SQL 문장 포함: PL/SQL은 SQL 문장을 포함할 수 있습니다. 이를 통해 데이터베이스의 데이터를 조회, 조작
- 변수 및 데이터 타입: PL/SQL은 다양한 데이터 타입을 지원하며, 변수를 선언하여 데이터를 저장하고 사용
- 예외 처리: PL/SQL은 예외 처리 기능을 제공하여 프로그램 실행 중 발생할 수 있는 오류를 처리
- 모듈화: PL/SQL은 프로그램을 모듈화하여 재사용성을 높일 수 있습니다. 프로시저, 함수, 패키지 등의 모듈을 정의하여 필요한 곳에서 호출하여 사용
- 트리거: PL/SQL을 사용하여 데이터베이스의 특정 이벤트 발생 시 자동으로 실행되는 트리거를 정의
- 동적 SQL: PL/SQL을 사용하여 실행 시점에 동적으로 SQL 문장을 생성하고 실행
PL/SQL은 오라클 데이터베이스에서 주로 사용되며, 데이터베이스 내에서 비즈니스 로직을 구현하거나 데이터 처리를 위한 프로시저, 트리거 등을 정의하는 데에 활용됩니다.
// JDBC syntax
CallableStatement cs1 = conn.prepareCall("{ call proc (?, ?) }");
CallableStatement cs2 = conn.prepareCall("{ ? = call func (?, ?) }");
// Oracle PL/SQL block syntax
CallableStatement cs3 = conn.prepareCall("begin proc (?, ?); end;");
CallableStatement cs4 = conn.prepareCall("begin ? := func(?, ?); end;");
- Oracle DB 연동 및 로그인
package com.kosa;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import oracle.jdbc.pool.OracleDataSource;
public class JdbcConnection {
@SuppressWarnings("unused")
public static void main(String args[]) throws SQLException {
OracleDataSource ods = new OracleDataSource();
/* Thin driver */
// 1
ods.setURL("jdbc:oracle:thin:@localhost:1521/xepdb1");
ods.setUser("ace");
ods.setPassword("me");
Connection conn1 = ods.getConnection();
DatabaseMetaData meta = conn1.getMetaData();
System.out.println("JDBC driver version is " + meta.getDriverVersion());
// 2
ods.setURL("jdbc:oracle:thin:ace/me@localhost:1521/xepdb1");
Connection conn2 = ods.getConnection();
/* Oracle Call Interface (OCI) driver */
// 1
ods.setURL("jdbc:oracle:oci8:@mydb");
ods.setUser("ace");
ods.setPassword("me");
Connection conn3 = ods.getConnection();
// 2
ods.setURL("jdbc:oracle:oci8:ace/me@mydb");
Connection conn4 = ods.getConnection();
/* 설정 파일 + 싱글턴 패턴 활용 접속 */
// Connection conn5 = DBConnection.getConnection();
}
}
반응형
LIST