I am adding the parameter as a type OracleDBType.Blob...
Code: Select all
command.Parameters.Add(
new OracleParameter("myImage", OracleDbType.Blob, ParameterDirection.Input)
{
Value = value
});
Code: Select all
command.Parameters.Add(
new OracleParameter("myImage", OracleDbType.Blob, ParameterDirection.Input)
{
Value = value
});
Code: Select all
using (OracleConnection conn = new OracleConnection()) {
conn.ConnectionString = "server=orcl1120;uid=***;pwd=***;";
conn.Open();
FileStream fs = new FileStream("D:\Temp\foto.jpg", FileMode.Open, FileAccess.Read);
BinaryReader r = new BinaryReader(fs);
//Create temporary BLOB
OracleLob myLob = new OracleLob(conn, OracleDbType.Blob);
int streamLength = (int)fs.Length;
//Transfer data to server
myLob.Write(r.ReadBytes(streamLength), 0, streamLength);
OracleCommand cmd = conn.CreateCommand();
// Set command text property
cmd.CommandText = "INSERT INTO blob_table VALUES(:blobcolumn, :id)";
// Add parameters to command parameters collection
cmd.Parameters.Add("blobcolumn", OracleDbType.Blob);
cmd.Parameters.Add("id", OracleDbType.Integer);
// Set parameters values
cmd.Parameters["blobcolumn"].OracleValue = new OracleLob[] { myLob, myLob };
cmd.Parameters["id"].Value = new int[] { 1,2 };
// Insert two records at one time
cmd.ExecuteArray(2);
}