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


            }

  • 相关阅读:
    axios
    JavaScript ES6部分语法
    JSP 基础之 JSTL <c:forEach>用法
    JS ajxa请求 返回数据
    java中的各种数据类型在内存中存储的方式
    sql之left join、right join、inner join的区别
    错误”ORA-12560: TNS: 协议适配器错误“解决方法
    Hibernate 和 Mybatis的区别
    eclipse启动几秒后报错 (一闪而过)
    sql ---- count 误区
  • 原文地址:https://www.cnblogs.com/philzhou/p/3275315.html
Copyright © 2020-2023  润新知