[C# PL/SQL] 2.C#에서 오라클 프로시저 호출하기, Oracle Data Provider for .NET (ODP.NET) 설정, 프로시저 호출 예제.

현대의 소프트웨어 개발에서 데이터베이스와의 상호작용은 필수적입니다. 특히 Oracle Database는 전 세계적으로 많은 기업에서 사용되고 있으며, 이를 위한 다양한 도구와 라이브러리가 존재합니다. 이 글에서는 C#을 사용하여 Oracle 프로시저를 호출하는 방법에 대해 자세히 다루겠습니다. 또한 Oracle Data Provider for .NET (ODP.NET)의 설정과 프로시저 호출 예제를 통해 실질적인 사용 사례를 살펴보겠습니다.

Oracle Data Provider for .NET (ODP.NET) 설정

ODP.NET은 Oracle Database와 .NET 애플리케이션 간의 상호작용을 위한 라이브러리입니다. ODP.NET을 사용하면 Oracle의 모든 기능을 쉽고 효율적으로 사용할 수 있으며, 여기에는 PL/SQL 프로시저 호출, 데이터 조작, 트랜잭션 관리 등이 포함됩니다.

1. ODP.NET 설치

ODP.NET을 사용하는 첫 번째 단계는 Oracle 클라이언트를 설치하는 것입니다. Oracle 클라이언트는 Oracle Database와의 통신을 위한 드라이버를 제공합니다.

  1. Oracle 공식 웹사이트에 접속하여 Oracle Data Access Components (ODAC) 또는 Oracle Client를 다운로드합니다.
  2. 다운로드한 파일을 실행하여 설치 과정을 진행합니다. Visual Studio Integration 옵션을 선택하면 Visual Studio에서 ODP.NET을 쉽게 사용할 수 있습니다.
  3. 설치가 완료되면, NuGet Package Manager를 사용하여 ODP.NET 패키지를 프로젝트에 추가할 수 있습니다. Visual Studio에서 Tools → NuGet Package Manager → Manage NuGet Packages for Solution…를 선택합니다.

2. ODP.NET NuGet 패키지 추가

정상적인 환경이 설정되었으면, 이제 ODP.NET에 필요한 NuGet 패키지를 프로젝트에 추가할 수 있습니다. 아래 명령을 NuGet 패키지 관리자 콘솔에서 실행하여 ODP.NET을 추가합니다.

Install-Package Oracle.ManagedDataAccess

Oracle 프로시저 호출하기

Oracle 프로시저는 데이터베이스에서 특정 작업을 수행하기 위한 PL/SQL 블록입니다. 이 섹션에서는 C#에서 ODP.NET을 사용하여 Oracle 프로시저를 호출하는 방법에 대해 설명하겠습니다.

1. Oracle 프로시저 정의하기

먼저 테스트를 위한 간단한 Oracle 프로시저를 정의합니다. 이 프로시저는 입력받은 두 숫자의 합을 반환하도록 하겠습니다.

CREATE OR REPLACE PROCEDURE AddNumbers ( 
    p_num1 IN NUMBER,
    p_num2 IN NUMBER,
    p_result OUT NUMBER) AS 
BEGIN 
    p_result := p_num1 + p_num2; 
END; 

2. C#에서 Oracle 프로시저 호출하기

이제 C#에서 위의 Oracle 프로시저를 호출하는 코드를 작성하겠습니다. 아래는 기본적인 예제입니다.

using System;
using Oracle.ManagedDataAccess.Client;

namespace OracleProcedureExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string connectionString = "User Id=YOUR_USER;Password=YOUR_PASSWORD;Data Source=YOUR_DATA_SOURCE;";
            using (OracleConnection conn = new OracleConnection(connectionString))
            {
                conn.Open();
                using (OracleCommand cmd = new OracleCommand("AddNumbers", conn))
                {
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;

                    cmd.Parameters.Add("p_num1", OracleDbType.Decimal).Value = 10;
                    cmd.Parameters.Add("p_num2", OracleDbType.Decimal).Value = 20;

                    // 결과 매개변수 추가
                    OracleParameter resultParam = new OracleParameter("p_result", OracleDbType.Decimal);
                    resultParam.Direction = System.Data.ParameterDirection.Output;
                    cmd.Parameters.Add(resultParam);
                    
                    // 프로시저 실행
                    cmd.ExecuteNonQuery();
                    
                    // 결과 출력
                    Console.WriteLine("The sum is : " + resultParam.Value);
                }
            }
        }
    }
}

3. 코드 설명

위의 C# 코드에서의 주요 부분은 다음과 같습니다:

  • OracleConnection: Oracle 데이터베이스와 연결하기 위한 객체입니다. 연결 문자열은 데이터베이스 정보와 사용자 정보를 포함합니다.
  • OracleCommand: 실행할 SQL 명령 또는 프로시저를 나타내는 객체입니다. CommandType.StoredProcedure를 설정하여 프로시저를 호출하도록 지정합니다.
  • cmd.Parameters.Add: 프로시저에 대한 입력 및 출력 매개변수를 정의합니다. 입력 매개변수는 값이 지정되며, 출력 매개변수는 방향을 ParameterDirection.Output으로 설정합니다.
  • ExecuteNonQuery: 프로시저를 실행합니다. 반환값은 없습니다.
  • 마지막으로 반환된 결과를 출력합니다.

결론

C#에서 ODP.NET을 사용하여 Oracle 프로시저를 호출하는 방법에 대해 알아보았습니다. 이 방법을 통해 효과적으로 Oracle Database와 상호작용할 수 있습니다. ODP.NET은 데이터베이스 작업을 더욱 간편하고 효율적으로 만들어 주며, 특히 복잡한 비즈니스 로직을 데이터베이스에서 처리할 수 있도록 도와줍니다. 다양한 매개변수를 사용하여 프로시저를 호출하고, 필요한 데이터 처리 및 반환값 사용 방법도 이해했으리라 생각합니다.

이제 여러분은 Oracle 프로시저를 C#을 통해 호출할 준비가 되었습니다. 프로젝트에 ODP.NET을 통합하여 강력하고 효율적인 데이터베이스 애플리케이션을 개발해 보십시오.