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

    在处理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);  

 

你可能感兴趣的:(oracle)