100分,不够在加! 那位大虾有.NET读写ORACLE CLOB字段的代码,急啊!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 读的话直接用SQL语句即可。string strCmd="Select Photo From tblname Where photoid="@in_PhotoID";OracleConnection Conn=new OracleConnection ("connStr");OracleCommand Cmd=new OracleCommand(strCmd,Conn);Cmd.CommandType=CommandType.Text; Cmd.Parameters.Add("@in_PhotoID",OracleType.VarChar,10);Cmd.Parameters["@in_PhotoID"].Value="123";Conn.Open();OracleDataReader Dr=Cmd.ExecuteReader(); //if(Dr.Read()){ byte[] btImage = (byte[])Dr["Photo"]; Response.Clear(); //向客户端发送当前缓冲区的所有内容 Response.Flush(); Response.BinaryWrite( btImage );}// 写可以参照MSDN文档ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemdataoracleclientoraclelobclasstopic.htm具代码如下:OracleConnection conn = new OracleConnection("server=MyServer; integrated security=yes;");conn.Open();OracleTransaction tx = conn.BeginTransaction();OracleCommand cmd = conn.CreateCommand();cmd.Transaction = tx;cmd.CommandText = "declare xx blob; begin dbms_lob.createtemporary(xx, false, 0); :tempblob := xx; end;";cmd.Parameters.Add(new OracleParameter("tempblob", OracleType.Blob)).Direction = ParameterDirection.Output;cmd.ExecuteNonQuery();OracleLob tempLob = (OracleLob)cmd.Parameters[0].Value;tempLob.BeginBatch(OracleLobOpenMode.ReadWrite);tempLob.Write(tempbuff,0,tempbuff.Length);tempLob.EndBatch();cmd.Parameters.Clear();cmd.CommandText = "myTable.myProc";cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new OracleParameter("ImportDoc", OracleType.Blob)).Value = tempLob;cmd.ExecuteNonQuery();tx.Commit(); 若要获取 OracleLob 对象,请调用 GetOracleLob 方法。可以使用如下格式构造值为 NULL 的 OracleLob:OracleLob myLob = OracleLob.Null;该技术主要用于测试从服务器返回的 LOB 是否为 NULL,如此示例所示:if( myLob == OracleLob.Null)NULL LOB 的行为与零字节 LOB 的相似之处在于,Read 成功并始终返回零字节。选择一个包含空值的 LOB 列可返回 Null。必须在获取临时 LOB 之前开始事务。否则,OracleDataReader 将不能获取后面的数据。还可以通过调用 DBMS_LOB.CREATETEMPORARY 系统存储过程并绑定 LOB 输出参数打开 Oracle 中的临时 LOB。在客户端,临时 LOB 的行为很像基于表的 LOB。例如,要更新临时 LOB,它必须包含在事务中。下面的 C# 示例阐释如何打开一个临时 LOB。 .NET Data Access Architecture Guidehttp://msdn.microsoft.com/data/default.aspx?pull=/library/en-us/dnbda/html/daag.asp#daag_handlingblobs 引用问题 asp.net2005每次发布到服务器后,总有几个aspx网页打不开 登录问题? 求一正则表达式,关于html字符替换 Oracle这个语句怎么优化能提高查询速率 WebService的方法用到事务要加什么命名空间 css求助 关于datagrid的编辑 母版页里的验证控件 动态创建控件问题 原来在vs上做的网站项目,因为系统重装,vs也重装,现在该如何打开原来做好了的网站项目? 'null'为空或不是对象
string strCmd="Select Photo From tblname Where photoid="@in_PhotoID";
OracleConnection Conn=new OracleConnection ("connStr");
OracleCommand Cmd=new OracleCommand(strCmd,Conn);
Cmd.CommandType=CommandType.Text;
Cmd.Parameters.Add("@in_PhotoID",OracleType.VarChar,10);
Cmd.Parameters["@in_PhotoID"].Value="123";Conn.Open();
OracleDataReader Dr=Cmd.ExecuteReader();
//
if(Dr.Read())
{
byte[] btImage = (byte[])Dr["Photo"];
Response.Clear();
//向客户端发送当前缓冲区的所有内容
Response.Flush();
Response.BinaryWrite( btImage );
}//
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemdataoracleclientoraclelobclasstopic.htm具代码如下:
OracleConnection conn = new OracleConnection("server=MyServer; integrated security=yes;");
conn.Open();
OracleTransaction tx = conn.BeginTransaction();
OracleCommand cmd = conn.CreateCommand();
cmd.Transaction = tx;
cmd.CommandText = "declare xx blob; begin dbms_lob.createtemporary(xx, false, 0); :tempblob := xx; end;";
cmd.Parameters.Add(new OracleParameter("tempblob", OracleType.Blob)).Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
OracleLob tempLob = (OracleLob)cmd.Parameters[0].Value;
tempLob.BeginBatch(OracleLobOpenMode.ReadWrite);
tempLob.Write(tempbuff,0,tempbuff.Length);
tempLob.EndBatch();
cmd.Parameters.Clear();
cmd.CommandText = "myTable.myProc";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new OracleParameter("ImportDoc", OracleType.Blob)).Value = tempLob;
cmd.ExecuteNonQuery();
tx.Commit();
http://msdn.microsoft.com/data/default.aspx?pull=/library/en-us/dnbda/html/daag.asp#daag_handlingblobs