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

http://hi.baidu.com/net1979/blog/item/1829e14ee7d26c0db2de0569.html

可以将二进制大对象 (BLOB) 作为二进制或字符数据写入数据库,具体视数据源的字段类型而定。若要将 BLOB 值写入数据库,请发出相应的 INSERT 或 UPDATE 语句并将 BLOB 值作为输入参数传递如果 BLOB 存储为文本格式(如 SQL Server text 字段),则可将 BLOB 作为字符串参数传递。如果 BLOB 存储为二进制格式(如 SQL Server image 字段),则可将类型 byte 的数组作为二进制参数传递。

Note注意

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值