본문 바로가기

.NET/VisualStudio2010

ODP.NET 설치와 배포 튜토리얼

반응형
튜토리얼 환경

서버 :
Windows Server 2008 R2
Oracle 10g

클라이언트 :
Windows Server 2008

프로그램 :
Visual Studio 2010
FrameWork 3.5



1. Oracle Data Access Components (ODAC) for Windows Downloads


Oracle 11g Release 2 ODAC 11.2.0.1.2
 Download the XCopy version






2. 압축 해제




3. 폴더에 아래의 파일들을 다른곳에 복사해 놓는다


\ODAC112012Xcopy\instantclient_11_2 

 




mfc71.dll
msvcr71.dll
oci.dll
ociw32.dll
orannzsbb11.dll
oraociei11.dll

\ODAC112012Xcopy\odp.net20\odp.net\bin\2.x

Oracle.DataAccess.dll

\ODAC112012Xcopy\odp.net20\bin

OraOps11w.dll




4.  테스트 프로젝트를 만든다






5.   ODP 폴더를 만든다



프로젝트 -> Add -> New Folder



   3. 에서 저장한 파일들을 ODP폴더에 옮겨놓는다.








6.  ODP 폴더에 DLL 을 ADD한다


ODP 폴더-> Add -> Existing Item 



아래의 파일들을 추가한다 (All Files(*.*))



DLL을 추가한 화면  



7. 참조에서 Oracle.DataAccess.dll  을 추가한다








8. 코딩한다


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Oracle.DataAccess.Client;
using System.Data;

namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                string oradb = "User Id=tester;" +
                               "Password=tester; " +
                              @"Data Source=(DESCRIPTION=(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.200.221)(PORT=1521)))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)))";

                Environment.SetEnvironmentVariable("PATH", Environment.CurrentDirectory + "\\ODP\\", EnvironmentVariableTarget.Process);

                using (OracleConnection conn = new OracleConnection(oradb))
                {
                    conn.Open();
                    OracleCommand cmd = new OracleCommand();
                    cmd.Connection = conn;
                    cmd.CommandText = @"SELECT '데이타' FROM DUAL";
                    cmd.CommandType = CommandType.Text;

                    using (OracleDataReader dr = cmd.ExecuteReader())
                    {
                        dr.Read();
                        string txt = dr.GetString(0);
                        Console.WriteLine(txt);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.ToString());

                Console.ReadLine();
            }

            Console.ReadLine();
        }
    }
}


실행 화면



9.  배포하기 위한 설정



ODP -> Properties 




Copy to Output Diectory -> Copy if newer




References -> Oracle.DataAccess -> Properties


Copy Local ->  True




10.  배포






11.  클라이언트 배포  실행








축하합니다. 성공하였습니다. ^^~



and Gooogle
     




 추가 -ODP.NET 환경설정 샘플

       Environment.SetEnvironmentVariable("PATH", Environment.CurrentDirectory + "\\ODP\\", EnvironmentVariableTarget.Process);
                Environment.SetEnvironmentVariable("ORACLE_HOME", Environment.CurrentDirectory + "\\ODP\\", EnvironmentVariableTarget.Process);
                Environment.SetEnvironmentVariable("ORA_TZFILE", null);
                String nlsLang = Environment.GetEnvironmentVariable("NLS_LANG");
                if (String.IsNullOrEmpty(nlsLang))//KOREAN_KOREA.KO16MSWIN949 , OR string.Empty
                    Environment.SetEnvironmentVariable("NLS_LANG", "KOREAN_KOREA.KO16MSWIN949");
                Environment.SetEnvironmentVariable("NLS_DATE_FORMAT", "RR/MM/DD");
                Environment.SetEnvironmentVariable("NLS_TIME_FORMAT", "HH24:MI:SSXFF");
                Environment.SetEnvironmentVariable("NLS_TIMESTAMP_FORMAT", "RR/MM/DD HH24:MI:SSXFF");
                Environment.SetEnvironmentVariable("NLS_TIME_TZ_FORMAT", "HH24:MI:SSXFF TZR");
                Environment.SetEnvironmentVariable("NLS_TIMESTAMP_TZ_FORMAT", "RR/MM/DD HH24:MI:SSXFF TZR");