Oracle数据库Clob字段的更新操作_Oracle数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

Oracle数据库Clob字段的更新操作

作者:黑客防线网安Oracle维护基地 来源:黑客防线网安Oracle维护基地 浏览次数:0

本篇关键词:Oracle数据库Oracle教程
黑客防线网安网讯:     OracleLob 与 OracleBFile 的区别在于前者的数据存储在服务器上而不是存储在操作系统的物理文件中。它也可以是一个读写对象,这一点与 OracleBFile 不同(后者始终为只读)。若要获取 ...
     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}
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-13182-1.html
网站维护教程更新时间:2012-03-23 00:51:35  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer