[닷넷ADO.NET]ODP.NET, ODAC설치 및 간단 DB접속예제
1. ODAC는 아래 URL에서 다운 받자.
http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html 에서 다운로드 후 압축풀고 설치
주의 : 자신의 오라클 버전에 맞는것을 다운로드 해야 한다.
설치시 ORACLE_BASE(오라클 소프트웨어의 베이스폴더, 사용자 계정이 a이면 c:\app\a) 및 ORACLE_HOME(저의경우, c:\app\A\product\11.2.0\dbhome_1) 디렉토리를 지정해야 하니 알고 있자.
2. 간단한 C# 콘솔 응용 프로그램 작성
먼저 Visual studio 우측 reference에서 Oracle.DataAccess를 참조 추가하자.
그리고 오라클에서 원격의 DB를 접속하려면 오라클 클라이언트홈 아래\network\admin(c:\app\A\product\11.2.0\client_1\NETWORK\ADMIN)의 tnsnames.ora 파일에 접속하고자 하는 DB명칭(tns이름)이 있어야 한다. 그 이름을 접속문자열의 data source 에 넣어주면 된다.
--------- tnsnames.ora
ONJ =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.7)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = onj)
)
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.7)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = onj)
)
)
---------------------------
using System;
using System.Data;
using Oracle.DataAccess;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
using System.Data;
using Oracle.DataAccess;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
namespace ConsoleApplication7
{
class Program
{
static void Main(string[] args)
{
//아래에서 data source의 onj는 tnsnames.ora 파일의 DB접속이름이다.
string str = "data source=onj;user id=scott; password=tiger";
OracleConnection Conn = new OracleConnection(str);
OracleCommand Comm;
OracleCommand Comm;
Comm = new OracleCommand();
Comm.Connection = Conn;
Comm.Connection = Conn;
try
{
Conn.Open();
Comm.CommandText = "SELECT ENAME FROM EMP";
OracleDataReader reader = Comm.ExecuteReader();
{
Conn.Open();
Comm.CommandText = "SELECT ENAME FROM EMP";
OracleDataReader reader = Comm.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader.GetString(reader.GetOrdinal("ENAME")));
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
finally
{
Conn.Close();
}
}
}
}
{
Console.WriteLine(reader.GetString(reader.GetOrdinal("ENAME")));
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
finally
{
Conn.Close();
}
}
}
}
[결과]
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER
댓글 없음:
댓글 쓰기