首页 > 解决方案 > OracleLob sql server varbinary 等效对象,用于读取 VarBinary(max) C#

问题描述

我们最近从 oracle 转移到 ms sql server,我无法从 SQL Server 读取 VarBinary(max)

甲骨文的代码是

    private byte[] CallSelectBlob(string aSqlCommand)
    {
        byte[] result = new byte[0];
        OracleCommand comm = new OracleCommand(aSqlCommand, oc);
        OracleDataReader reader = comm.ExecuteReader(System.Data.CommandBehavior.Default);

        while (reader.Read())
        {
            for (int i = 0; i < reader.FieldCount; i++)
            {
                string fieldName = reader.GetName(i);
                OracleLob myLob = reader.GetOracleLob(i);
                if (!myLob.IsNull)
                {
                    byte[] b = new byte[myLob.Length];
                    myLob.Read(b, 0, Convert.ToInt32(myLob.Length));
                    result = b;
                }
            }
        }
        reader.Close();
        return result;
    }

这很好用,但是我无法找到一个可以将 OracleLob 替换为可以与 VarBinary(max) 一起使用的对象(它将用作 pdf 文件)

该函数应将其作为 byte[] 返回。

有谁知道可以实现这一目标的方法?

标签: c#sqlsql-serverdatabase

解决方案


推荐阅读