怎么将带特殊字符的字符串存入sqlserver的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么将带特殊字符的字符串存入sqlserver的相关的知识,希望对你有一定的参考价值。

参考技术A 使用反斜杠转义特殊字符
如:
insert into t_2 values('1231\'')
将'号插入数据库
参考技术B SQL是可以存储任何字符的

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

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) 在

我是学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[])
类似这样的意思,以供参考
参考技术A 转成字节:
byte[] bytes= System.Text.Encoding.ASCII.GetBytes(data);
para.Value = bytes;

以上是关于怎么将带特殊字符的字符串存入sqlserver的的主要内容,如果未能解决你的问题,请参考以下文章

FreeMarker 将带逗号的字符串转换为数字

java如何实现微信表情及特殊字符存入数据库

html特殊字符必须转义怎么办

怎么样才能把特殊字符®®(商标)插入到sqlserver数据库中,不能出现乱码。求解?

JAVA中怎样把用户输入的字符串存入数组中?

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