2013-03-14 105 views
0

您好我有一个字段有OracleClob类型。我想将此作为我的字符串data.For我可以在c#中执行它?如何将字符串转换为C#中的OracleClob对象?

[MapField("MSG_BODY")] 
public Oracle.DataAccess.Types.OracleClob MsgBody { get; set; } 

我想设置MsgBody:“This is a sample”;

我必须定义一个oracleclob对象并将其填充为字符串文本。

回答

2

根据你需要将它与一个缓冲阵列写Oracle documentation,所以是这样的:

char[] writeBuffer = "This is a sample".ToCharArray(); 
this.MsgBody.Write(writerBuffer, 0, writeBuffer.Length); 
this.MsgBody.Close(); 
this.MsgBody.Dispose(); 

,并铭记我假设你有一个开放的OracleConnection创建OracleClob

+0

我使用bltoolkit与connectionstr.I Oracle连接都没有的OracleConnection OBJ我一定要只使用此创建它吗? – Mennan 2013-03-14 13:26:12

+0

@Mennan:根据文档(如果您查看代码示例),您必须创建一个具有连接的“OracleClob”。如果你正在利用这个框架来完成这个工作,那么我只是告诉你一个'OracleClob'不是一个普通的旧类 - 它很特殊,需要一些有趣的初始化和交互。 – 2013-03-14 13:28:05

+0

我了解问题thx帮助我研究文档。 – Mennan 2013-03-14 13:32:54

2

我从来没有碰到甲骨文,但根据the documentation你可以处理它像一个字节流。

添加StreamWriter,你应该能够做到

var sw = new StreamWriter(MsgBody, Encoding.UTF8); // Assuming you want UTF-8 
sw.Write("This is a sample"); 
sw.Flush(); 
+0

我也试过这个,我得到了“值不能为空”。错误。 – Mennan 2013-03-14 13:24:42

+0

你从哪里得到错误?写作?法拉盛?保存?您可能还需要始终创建一个新的OracleClob来写入,然后将其分配给MsgBody。 – AKX 2013-03-14 13:25:32

+0

写错误。我使用bltoolkit连接到oracle.i认为我必须创建新的连接只用于创建新的clob obj – Mennan 2013-03-14 13:27:34