zoukankan      html  css  js  c++  java
  • Operate blob data in Oracle via C#

    oracle table:

    CREATE TABLE "SCOTT"."TEST_BLOB"
       (    "NAME" VARCHAR2(200),
        "PHOTO" BLOB
       )

    Operating Code:

    private static void OprBlob()
            {
                var connStr = ConfigurationManager.ConnectionStrings["ora"].ConnectionString;

                using (OracleConnection conn = new OracleConnection())
                {
                    conn.ConnectionString = connStr;
                    conn.Open();
                    var cmd = conn.CreateCommand();
                    cmd.CommandText = @"
    begin
    insert into test_blob values(:1,:2);
    end;
    ";;
                    byte[] photo;
                    using (var fileStrm = new FileStream(@"D:abc.png", FileMode.Open))
                    {
                        photo = new byte[fileStrm.Length];
                        fileStrm.Read(photo, 0, photo.Length);
                    }
                    cmd.Parameters.Add("name", OracleDbType.NVarchar2,"Phil",ParameterDirection.Input);
                    cmd.Parameters.Add("photo", OracleDbType.Blob, photo, ParameterDirection.Input);

                    cmd.ExecuteNonQuery();
                }

                using (OracleConnection conn = new OracleConnection())
                {
                    conn.ConnectionString = connStr;
                    conn.Open();
                    var cmd = conn.CreateCommand();
                    cmd.CommandText = @"
    begin
    select photo into :1 from test_blob where rownum =1;
    end;
    "; ;

                    var photoParam = cmd.Parameters.Add("p", OracleDbType.Blob, ParameterDirection.Output);

                    cmd.ExecuteNonQuery();

                    byte[] photo2 = (byte[])((Oracle.DataAccess.Types.OracleBlob) photoParam.Value).Value;

                    using (var fileStrm = new FileStream(@"D:phil.png",FileMode.CreateNew))
                    {
                        fileStrm.Write(photo2,0,photo2.Length);
                        fileStrm.Flush(true);
                    }
                }


            }

  • 相关阅读:
    数据库远程备份
    20 种提升网页速度的技巧【转】
    ASP.NET页面间传值
    EXT 中文乱码解决方法
    sql INSERT之后获取主键值【转】
    asp.net cookies的使用方法
    关于AjaxPro的性能改进 【转】
    C#取真实IP地址及分析
    .NET 程序员十种必备工具
    Solution 「洛谷 P4320」道路相遇
  • 原文地址:https://www.cnblogs.com/philzhou/p/3275315.html
Copyright © 2011-2022 走看看