c# 中,一个长度为422234 的字符串,想存入oracle 数据库clob 字段,怎么存入? 麻烦具体方法

strSql="insertintoyhsjArrInfo(ID,YHM,JH,DTIME,BZ,ARR1,ARR2)values(YHSJARRID.NEXTVAL,'... strSql = " insert into yhsjArrInfo(ID, YHM, JH, DTIME, BZ, ARR1, ARR2 ) values( YHSJARRID.NEXTVAL, 'kty','jh112',sysdate,'',"+":para "+ ", :para ) ";
StringBuilder data = new StringBuilder();
data.Append(str);//str 长度为422234
OracleCommand myCmd = new OracleCommand(strSql, orclcon);
myCmd.CommandType = CommandType.Text;
OracleParameter para = new OracleParameter("para", OracleType.Clob);
para.Value = data.ToString();
myCmd.Parameters.Add(para);
myCmd.ExecuteNonQuery();

error:

System.Data.OracleClient.OracleException: ORA-00600: 内部错误代码, 参数: [koklGetLocAndFlag: bndpos], [], [], [], [], [], [], [] 在 System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc) 在
展开
 我来答
zhanliang1217
2010-08-25 · TA获得超过460个赞
知道小有建树答主
回答量:683
采纳率:0%
帮助的人:395万
展开全部
我是学java的,但我想应该是一样的,
先转换成byte[]数组,再存入clob对象

insert 语句改为:
strSql = " insert into yhsjArrInfo(ID, YHM, JH, DTIME, BZ, ARR1, ARR2 ) values( YHSJARRID.NEXTVAL, 'kty','jh112',sysdate,'',empty_clob(),empty_clob()) ";
再去取这一条记录,where id = :id,取出这条记录后再更新它的empty_clob(),
Clob b = (Clob) rs.getClob("arr1"),
BufferedOutputStream.write(byte[])
类似这样的意思,以供参考
厉害了勇勇
2010-08-25 · TA获得超过252个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:142万
展开全部
转成字节:
byte[] bytes= System.Text.Encoding.ASCII.GetBytes(data);
para.Value = bytes;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式