• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 始創于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業
    • 60秒人工響應
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補償
    您的位置: 網站首頁 > 幫助中心>文章內容

    Oracle數據庫Clob字段的更新操作

    發布時間:  2012/9/20 16:41:57

    OracleLob 與 OracleBFile 的區別在于前者的數據存儲在服務器上而不是存儲在操作系統的物理文件中。它也可以是一個讀寫對象,這一點與 OracleBFile 不同(后者始終為只讀)。

      若要獲取 OracleLob 對象,請調用 GetOracleLob 方法。

      可以使用如下格式構造值為 NULL 的 OracleLob:
      OracleLob myLob = OracleLob.Null;-
     

      測試從服務器返回的 LOB 是否為 NULL
      if( myLob == OracleLob.Null)
      或者
      if( myLob.Value == DBNull.Value )
      NULL LOB 的行為與零字節 LOB 的相似之處在于,Read 成功并始終返回零字節。
      選擇一個包含空值的 LOB 列可返回 Null。
      必須在獲取臨時 LOB 之前開始事務。否則,OracleDataReader 將不能獲取后面的數據。

      1using System;
      2using System.Data;
      3using System.Data.OracleClient;
      4using System.IO;
      5
      6namespace ConnectOracle
      7{
      8    /// <summary>
      9    /// Oracle數據庫Clob字段的更新操作
      10    /// </summary>
      11    public class ConnectionOracle
      12    {
      13
      14        public void UpdateClogData()
      15        {
      16
      17            //
      18            // 操作對象
      19            //
      20             OracleLob lob;
      21             OracleTransaction txn = null;
      22             OracleConnection conn = null;
      23             OracleCommand cmd = null;
      24             OracleDataReader dr = null;
      25            string strSql = string.Empty;
      26            string content = string.Empty;
      27            string CONNECTSTRING = "User ID=xxxx; Password=xxxx; Data Source=cmsdb_192.168.0.1";
      28
      29            try
      30            {
      31                 conn = new OracleConnection(CONNECTSTRING);
      32                 conn.Open();
      33                 txn = conn.BeginTransaction();
      34                 cmd = new OracleCommand(strSql,conn, txn);
      35
      36                //
      37                // 注意這里的 FOR UPDATE 進行記錄鎖定
      38                //
      39                 cmd.CommandText = "SELECT content FROM mytable FOR UPDATE";
      40                 dr = cmd.ExecuteReader();
      41                 dr.Read();
      42
      43                while(dr.Read())
      44                {
      45                     lob = dr.GetOracleLob(0);
      46                    if(lob!=OracleLob.Null)
      47                    {
      48                         content = lob.Value.ToString();
      49
      50                        //
      51                        // 進行修改操作
      52                        //
      53                         content = "這是新的數據";
      54
      55                        //
      56                        // 將新的數據值轉換成byte[]
      57                        //
      58                        byte[] buffer = System.Text.Encoding.Unicode.GetBytes(content);
      59
      60                        //
      61                        // 寫回lob對象
      62                        //
      63                         lob.Write(buffer, 0, buffer.Length);
      64                     }
      65
      66                 }
      67                // 提交操作
      68                 txn.Commit();
      69                 Console.WriteLine("===============Success================");
      70             }
      71            catch(Exception ex)
      72            {
      73                 Console.WriteLine("Error: {0}", ex.ToString());
      74             }
      75            finally
      76            {
      77                 dr.Close();
      78                 conn.Close();
      79                 cmd.Dispose();
      80             }
      81         }
      82
      83     }
      84}


     


    本文出自:億恩科技【www.vbseamall.com】

    服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      1
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線