您的位置:首页 > 数据库 > Oracle

设置oracle中的blob字段,将xml文件写入到数据库中

2008-11-25 21:20 531 查看
http://hi.baidu.com/net1979/blog/item/1829e14ee7d26c0db2de0569.html可以将二进制大对象 (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();
            }
        }
       
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: