設定oracle中的blob欄位,將xml檔案寫入到資料庫中
可以將二進位制大物件 (BLOB) 作為二進位制或字元資料寫入資料庫,具體視資料來源的欄位型別而定。若要將 BLOB 值寫入資料庫,請發出相應的 INSERT 或 UPDATE 語句並將 BLOB 值作為輸入引數傳遞如果 BLOB 儲存為文字格式(如 SQL Server text 欄位),則可將 BLOB 作為字串引數傳遞。如果 BLOB 儲存為二進位制格式(如 SQL Server image 欄位),則可將型別 byte 的陣列作為二進位制引數傳遞。
注意 |
---|
BLOB 可能相當大,因此在作為單個值寫入時可能要使用大量的系統記憶體,從而降低應用程式的效能。若要減少寫入 BLOB 值時所使用的記憶體量,可以按“塊”將 BLOB 寫入資料庫。我這裡只是把xml檔案一次性存進資料庫,沒有分塊,因為我用的xml檔案不是很大。 |
/// <summary>
/// 設定BLOB
///
</summary>
/// <param
name="inst_id">例項編號</param>
/// <param
name="xmlFrom">xml檔案</param>
private void setBlob(string
inst_id,XmlDocument xmlFrom)
{
//將xmld存入流程例項表
OracleConnection con = GenericClassOra.connect();
//連線資料庫,自已寫的方法
//頁面要設定成gb2312:
ResponseEncoding="gb2312",根據情況,如果你的是utf-8
byte[] ddd =
System.Text.Encoding.Default.GetBytes(xmlFrom.InnerXml);
//這是要更新哪一條的SQL語句
string strSQL = "update 表名set blob欄位名=:ddd where
id='" + inst_id + "'";
try
{
con.Open();
OracleCommand comd = new OracleCommand(strSQL,
con);
comd.CommandType =
CommandType.Text;
comd.CommandText = strSQL;
comd.Parameters.Add("ddd", System.Data.OracleClient.OracleType.Blob).Value =
ddd;
comd.ExecuteNonQuery();
}
catch(Exception ex)
{
throw ex;
}
finally
{
if (con.State ==
ConnectionState.Open)
{
con.Close();
}
}
}