`
Mysun
  • 浏览: 270764 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

如何从oracl数据库正确读取包含中文的Bolb

    博客分类:
  • .NET
阅读更多
以下代码说明了如何从oracl数据库正确读取包含中文的Bolb.
public string getAttachment()
...{
            String sql = "select BOLB_CONTENT from SOME_TABLE where ID = '222'";

            OracleConnection conn = new OracleConnection(connString);
            conn.Open();
            
            OracleCommand cmd = conn.CreateCommand();
            cmd.CommandText = sql;

            OracleDataReader reader = cmd.ExecuteReader();
            reader.Read();

            System.Text.StringBuilder sb = new StringBuilder();
            byte[] buffer = new byte[8192];

            int i = 0;
            int j;

            do
            ...{
                j = (int)reader.GetBytes(0, i, buffer, 0, buffer.Length);
                sb.Append(System.Text.Encoding.Unicode.GetString(buffer, 0, j));
                i += j;
            } while (j == buffer.Length);

            return sb.ToString();
}


注意,地24行中使用Encoding,这是因为在存入数据库时也适用的Unicode编码,所以这里在读取的时候需要使用同样的编码。否则可能会出现错误。
以下是将中文字符数据转化成制定编码二进制数组的代码:
System.Text.Encoding.Unicode.GetBytes("测试oracle数据库中文读写!");
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics