1.Oracle Data Access Components for Windows를 다운로드한다.
http://www.oracle.com/technetwork/indexes/downloads/index.html?ssSourceSiteId=ocomen
=>설치할 때, 필수항목으로 Instant Client가 설치되는데 이미 설치되어 있어도 다시 하도록 되어있었음..;;
2. using Oracle.DataAccess.Client;
string oradb = "Data Source=(DESCRIPTION="
+ "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.xxx)(PORT=1521)))"
//+ "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl.xxxx.com)));"
+ "(CONNECT_DATA=(SERVER=DEDICATED)(SID=ORCL)));"
+ "User Id=user;Password=password;";//service_name은 전역데이터베이스이름
using (OracleConnection conn = new OracleConnection(oradb))
{
try
{
conn.Open();
using (OracleCommand cmd = new OracleCommand())
{
cmd.Connection = conn;
cmd.CommandText = "select * from " + tablename;
OracleDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
MessageBox.Show(dr.GetString(1));
....
}
cmd.CommandText = "insert into " + tablename + " (column1, column2, column3)"
+ " VALUES('" + val1 + "', '" + val3 + "', '" + val3 + "')";
int Res = cmd.ExecuteNonQuery();
if (Res == 1)
{
System.Diagnostics.Trace.WriteLine("insert 성공");
}
else
{
System.Diagnostics.Trace.WriteLine("insert 실패");
}
}
}
catch (OracleException ex) // catches only Oracle errors
{
switch (ex.Number)
{
case 1:
MessageBox.Show("Error attempting to insert duplicate data.");
break;
case 12545:
MessageBox.Show("The database is unavailable.");
break;
default:
MessageBox.Show("Database error: " + ex.Message.ToString());
break;
}
}
catch (Exception ex) // catches any other error
{
MessageBox.Show(ex.Message.ToString());
}
finally
{
// Don't need conn.Close() because the using takes care of it.
}
}