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


            }

  • 相关阅读:
    [对android程序作代码混淆]
    用smali实现Android apk的简单汉化
    防止java反编译的一些常用方法
    http抓包工具推荐WSockExpert/httpwatch/HttpAnalyzer/DebugBar
    JSP动态网站环境搭建应用中的详细步骤(Tomcat和Apache/IIS的整合)
    22、Secondary Tiles
    21、磁贴和磁贴通知(tile)(下)
    19、Context Menu
    代码管理工具
    20、磁贴和磁贴通知(tile)(上)
  • 原文地址:https://www.cnblogs.com/philzhou/p/3275315.html
Copyright © 2011-2022 走看看