Represents a managed
OracleBFile object to work with the Oracle BFILE data type.
The following sample shows how the OracleBFile class can be used. We insert a BFile object to the database and then print the content of the corresponding file on the physical drive. To run the sample, you need to create the BFileTable table first:
CREATE TABLE BFileTable (
id NUMBER,
bf BFILE)
|
|---|
// Open a connection
OracleConnection con = new OracleConnection("Server = Ora; User Id = Scott; Password = tiger;");
con.Open();
OracleCommand com = new OracleCommand();
com.Connection = con;
// Create an Oracle directory corresponding to the folder containing the file.
com.CommandText = "CREATE OR REPLACE DIRECTORY Images as 'D:\\images\\'";
com.ExecuteNonQuery();
// Create an OracleBFile object.
// Note that the directory name should be in upper case.
// Otherwise, it will be case-sensitive and may cause errors.
OracleBFile bFile = new OracleBFile(con, "IMAGES", "image001.jpg");
// Insert the OracleBFile object to the database.
com.CommandText = "INSERT INTO BFileTable VALUES (1, :bfile)";
com.Parameters.Add(new OracleParameter("bfile", bFile));
com.ExecuteNonQuery();
// Retrieve data from the table.
com.Parameters.Clear();
com.CommandText = "SELECT * FROM BFileTable";
OracleDataReader reader = com.ExecuteReader();
while (reader.Read()) {
// Get BFiles from the reader and print a part of their content.
bFile = reader.GetOracleBFile(1);
bFile.OpenFile();
byte[] buffer = new byte[100];
bFile.Read(buffer, 0, 100);
foreach(byte bt in buffer)
Console.Write(bt + " ");
Console.WriteLine();
bFile.Close();
} |
|
|---|
' Open a connection
Dim con = New OracleConnection("Server = Ora; User Id = Scott; Password = tiger;")
con.Open()
Dim com = New OracleCommand()
com.Connection = con
' Create an Oracle directory corresponding to the folder containing the file.
com.CommandText = "CREATE OR REPLACE DIRECTORY Images as 'D:\\Images\\'"
com.ExecuteNonQuery()
' Create an OracleBFile object.
' Note that the directory name should be in upper case.
' Otherwise, it will be case-sensitive and may cause errors.
Dim bFile As OracleBFile = New OracleBFile(con, "IMAGES", "image001.jpg")
' Insert the OracleBFile object to the database.
com.CommandText = "INSERT INTO BFileTable VALUES (1, :bfile)"
com.Parameters.Add(New OracleParameter("bfile", bFile))
com.ExecuteNonQuery()
' Retrieve data from the table.
com.Parameters.Clear()
com.CommandText = "SELECT * FROM BFileTable"
Dim reader = com.ExecuteReader()
While reader.Read()
' Get BFiles from the reader and print a part of their content.
bFile = reader.GetOracleBFile(1)
bFile.OpenFile()
Dim buffer As Byte() = New Byte(100) {}
bFile.Read(buffer, 0, 100)
For Each bt As Byte In buffer
Console.Write(bt & " ")
Next
Console.WriteLine()
bFile.Close()
End While |