오라클 bfile 을 이용하여 디렉토리 내의 파일 참조
// 오라클 bfile 을 이용하여 디렉토리 내의 파일 참조
using System;
using System.IO;
using System.Data;
using System.Data.OracleClient;
public class Sample
{
public static void Main(string[] args)
{
OracleConnection connection = new OracleConnection(
"Data Source=won;User ID=scott;Password=tiger");
//OracleConnection connection = new OracleConnection(
// "Data Source=won;User ID=scott;Password=tiger;Integrated Security=yes;");
connection.Open();
OracleCommand command = connection.CreateCommand();
command.CommandText =
"CREATE or REPLACE DIRECTORY MyDir as 'c:\\img'"; //오라클상에 가상에 디렉토리 생성시
command.ExecuteNonQuery(); //대문자와 소문자의 조합으로 디렉토리명을 써도
command.CommandText =
"DROP TABLE test_bfile";
try
{
command.ExecuteNonQuery();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
command.CommandText =
"CREATE TABLE test_bfile(id number, memo BFILE)";
command.ExecuteNonQuery();
command.CommandText =
"INSERT INTO test_bfile values (2, BFILENAME('MYDIR','b.jpg'))";//불러올때는 대문자로 불러와야한다
command.ExecuteNonQuery(); //소문자로 불러와서 하루 고생....ㅡ.,ㅡ;
command.CommandText = "SELECT * FROM test_bfile";
byte[] buffer = new byte[100];
OracleDataReader reader = command.ExecuteReader();
using (reader)
{
if (reader.Read())
{
OracleBFile bFile = reader.GetOracleBFile(1);
using (bFile)
{
Console.WriteLine(bFile.FileExists.ToString());
bFile.Seek(0, SeekOrigin.Begin);
bFile.Read(buffer, 0, 100);
}
}
}
connection.Close();
}
}