[C# PL/SQL] 2.C#에서 오라클 프로시저 호출하기, C# 애플리케이션에서 오라클 프로시저를 호출하는 방법을 단계별로 설명

2. C#에서 오라클 프로시저 호출하기

현대 소프트웨어 개발에서는 다양한 데이터베이스 시스템과 프로그래밍 언어가 결합되어 사용됩니다. 특히 C#과 오라클 데이터베이스의 조합은 강력한 데이터 처리 및 비즈니스 로직 처리를 가능하게 합니다. 이 글에서는 C# 애플리케이션에서 오라클 프로시저를 호출하는 방법에 대해 단계별로 자세히 설명합니다.

1. 오라클 데이터베이스 설정

오라클 프로시저를 호출하기 전에 데이터베이스와의 연결을 설정해야 합니다. 여기에서는 오라클 Express Edition을 사용하여 데이터베이스를 설정하는 방법을 설명합니다.

  • 오라클 웹사이트에서 Express Edition 다운로드 및 설치
  • SQL Developer를 사용하여 데이터베이스에 연결
  • 필요한 사용자 및 스키마 생성

2. 오라클 프로시저 생성

데이터베이스에 연결한 후, 호출할 프로시저를 생성합니다. 아래는 간단한 예제 프로시저로, 고객 정보를 관리하는 프로시저입니다.


CREATE OR REPLACE PROCEDURE AddCustomer (
    p_Name IN VARCHAR2,
    p_Age IN NUMBER
) AS
BEGIN
    INSERT INTO Customers (Name, Age) VALUES (p_Name, p_Age);
END AddCustomer;

이 프로시저는 고객 이름과 나이를 입력받아 Customers 테이블에 추가합니다.

3. C# 프로젝트 설정

이제 C# 프로젝트를 설정하겠습니다. Visual Studio를 사용하여 새로운 C# 콘솔 애플리케이션을 생성합니다.

  1. Visual Studio를 열고, 새 프로젝트를 선택합니다.
  2. 콘솔 애플리케이션을 선택하고, 프로젝트 이름을 입력합니다.
  3. 프로젝트가 생성되면, NuGet 패키지 관리자를 사용하여 ‘Oracle.ManagedDataAccess’ 패키지를 설치합니다.

4. 오라클 연결 문자열 설정

프로시저를 호출하기 위해 필요한 연결 문자열을 설정합니다. ‘app.config’ 파일에 다음과 같이 입력합니다.



  
    
  

위 연결 문자열은 오라클 데이터베이스에 접속하기 위한 사용자 ID, 비밀번호, 데이터 소스를 포함합니다.

5. C# 코드 작성

이제 프로시저를 호출할 C# 코드를 작성합니다. 아래는 오라클 프로시저를 호출하는 예제 코드입니다.


using System;
using System.Data;
using Oracle.ManagedDataAccess.Client;

namespace OracleProcedureCall
{
    class Program
    {
        static void Main(string[] args)
        {
            // 연결 문자열 가져오기
            string connString = System.Configuration.ConfigurationManager.ConnectionStrings["OracleDB"].ConnectionString;

            // 데이터베이스 연결
            using (OracleConnection conn = new OracleConnection(connString))
            {
                conn.Open();
                Console.WriteLine("Oracle Database Connected!");

                // 오라클 커맨트 객체 생성
                using (OracleCommand cmd = new OracleCommand("AddCustomer", conn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;

                    // 파라미터 추가
                    cmd.Parameters.Add("p_Name", OracleDbType.Varchar2).Value = "John Doe";
                    cmd.Parameters.Add("p_Age", OracleDbType.Int32).Value = 30;

                    // 프로시저 호출
                    cmd.ExecuteNonQuery();
                    Console.WriteLine("Customer added successfully!");
                }
            }
        }
    }
}

위 코드는 오라클 데이터베이스에 연결하고, AddCustomer 프로시저를 호출합니다. 필요한 매개변수를 추가한 후 ExecuteNonQuery() 메서드를 사용하여 프로시저를 실행합니다.

6. 예외 처리와 리소스 정리

프로시저 호출 과정에서 문제가 발생할 수 있으므로, 예외 처리를 추가하는 것이 중요합니다. 아래는 연결 및 프로시저 호출 시 예외를 처리하는 방법의 예입니다.


try
{
    using (OracleConnection conn = new OracleConnection(connString))
    {
        conn.Open();
        Console.WriteLine("Oracle Database Connected!");

        using (OracleCommand cmd = new OracleCommand("AddCustomer", conn))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("p_Name", OracleDbType.Varchar2).Value = "John Doe";
            cmd.Parameters.Add("p_Age", OracleDbType.Int32).Value = 30;
            cmd.ExecuteNonQuery();
            Console.WriteLine("Customer added successfully!");
        }
    }
}
catch (OracleException ex)
{
    Console.WriteLine("Oracle error: " + ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine("General error: " + ex.Message);
}
finally
{
    // 리소스 정리 코드
}

7. 결론

이 글에서는 C# 애플리케이션에서 오라클 프로시저를 호출하는 방법을 단계별로 살펴보았습니다. 오라클 데이터베이스에 연결하고, 필요한 프로시저를 생성한 후 C# 코드를 통해 프로시저를 호출하는 과정은 매우 직관적이었습니다. 데이터베이스와의 원활한 통신을 위한 연결 문자열 설정, 프로시저 호출, 예외 처리 등을 통해 안정적인 애플리케이션을 개발할 수 있습니다.

다양한 비즈니스 요구사항을 충족하기 위해 C#과 오라클의 강력한 조합을 활용하여 데이터를 효과적으로 관리하고 처리하는 방법을 마스터해보세요.