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);
    }