您的位置:首页 > 数据库 > Oracle

C#中执行包含ORACLE CLOB类型存储过程

2010-11-01 14:15 1031 查看
在处理CLOB字符字段时,如果直接将字符串传递给oracleparameter,在字符串长度超过4000是出现异常:

ORA-01460: 转换请求无法实施或不合理

因为Oracle字符最大长度为4000,需要构造一个OracleClob对象,将要传递的字符串写入OracleClob。如下代码所示:

command.CommandText = "select * from table(AnalyseBuffer(:gml))";
OracleClob clob = new OracleClob(command.Connection, true, false);
//gmlPolygon为大于4000字符长度的字符串.
char[] cs= gmlPolygon.ToCharArray();
clob.Write(cs, 0,cs.Length);
OracleParameter para = new OracleParameter("gml", OracleDbType.Clob,clob, ParameterDirection.Input);
command.Parameters.Insert(0, para);
DataSet ds = new DataSet();
OracleDataAdapter ad = new OracleDataAdapter(command);
ad.Fill(ds);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: