新增和编辑clob字段
#region 新的数据新增和修改方法
/// <summary>
/// 添加信息
/// </summary>
/// <returns></returns>
public static bool AddInfo(string name, string pid, string content)
{
OracleConnection conn = new OracleConnection(connectionstring);
OracleCommand cmd = conn.CreateCommand();
OracleTransaction objTran = null;
try
{
conn.Open();
objTran = conn.BeginTransaction();
cmd.Transaction = objTran;
//创建临时clob变量
cmd.CommandText = "DECLARE dpClob CLOB; BEGIN DBMS_LOB.CREATETEMPORARY(dpClob, False, 0); :tmpClob := dpClob; END;";
OracleParameter op1 = new OracleParameter("tmpClob", OracleType.Clob);
op1.Direction = ParameterDirection.Output;
cmd.Parameters.Add(op1);
cmd.ExecuteNonQuery();
OracleLob tempLob;
tempLob = (OracleLob)cmd.Parameters[0].Value;
tempLob.BeginBatch(OracleLobOpenMode.ReadWrite);
byte[] buffer = Encoding.Unicode.GetBytes(content);
tempLob.Write(buffer, 0, buffer.Length);//将值写入临时变量中
tempLob.EndBatch();
cmd.Parameters.Clear();
cmd.CommandText = "insert into t_yingjiinfo (id,nodename,pid,content) values ( seq_t_yingjiinfo.nextval,'" + name + "', " + pid + ",:contentText)";
cmd.CommandType = CommandType.Text;
OracleParameter op2 = new OracleParameter("contentText", OracleType.Clob);
op2.Value = tempLob;
cmd.Parameters.Add(op2);
cmd.ExecuteNonQuery();
objTran.Commit();
cmd.Parameters.Clear();
return true;
}
catch
{
objTran.Rollback();
return false;
}
finally
{
objTran.Dispose();
cmd.Dispose();
conn.Close();
conn.Dispose();
}
}
/// <summary>
/// 更新数据 更新一般修理二维码字段 暂时只有陕西省
/// </summary>
/// <returns></returns>
public static bool UpdateInfo(string bianhao, string content)
{
OracleConnection conn = new OracleConnection(connectionstring);
OracleCommand cmd = conn.CreateCommand();
OracleTransaction objTran = null;
try
{
conn.Open();
objTran = conn.BeginTransaction();
cmd.Transaction = objTran;
cmd.CommandText = "DECLARE dpClob CLOB; BEGIN DBMS_LOB.CREATETEMPORARY(dpClob, False, 0); :tmpClob := dpClob; END;";
OracleParameter op1 = new OracleParameter("tmpClob", OracleType.Clob);
op1.Direction = ParameterDirection.Output;
cmd.Parameters.Add(op1);
cmd.ExecuteNonQuery();
OracleLob tempLob;
tempLob = (OracleLob)cmd.Parameters[0].Value;
tempLob.BeginBatch(OracleLobOpenMode.ReadWrite);
byte[] buffer = Encoding.Unicode.GetBytes(content);
tempLob.Write(buffer, 0, buffer.Length);
tempLob.EndBatch();
cmd.Parameters.Clear();
cmd.CommandText = "update wh_qrcode set qrcode = :contentText where bianhao = '" + bianhao + "'";
cmd.CommandType = CommandType.Text;
OracleParameter op2 = new OracleParameter("contentText", OracleType.Clob);
op2.Value = tempLob;
cmd.Parameters.Add(op2);
cmd.ExecuteNonQuery();
objTran.Commit();
cmd.Parameters.Clear();
return true;
}
catch
{
objTran.Rollback();
return false;
}
finally
{
objTran.Dispose();
cmd.Dispose();
conn.Close();
conn.Dispose();
}
}
#endregion
新增和编辑clob字段的更多相关文章
- layui 学习笔记一:layui table 查询、新增、编辑、删除
一.table数据的呈现(对应查询) 页面代码: @{ ViewBag.Title = "TableGrid"; } @section styles{ <link href= ...
- LOB字段存放在指定表空间 清理CLOB字段及压缩CLOB空间
LOB字段存放在指定表空间 清理CLOB字段及压缩CLOB空间 把LOB字段的SEGMENT 存放在指定表空间.清理CLOB字段及压缩CLOB空间 1.创建LOB字段存放表空间:create ...
- java 将长度很长的字符串(巨大字符串超过4000字节)插入oracle的clob字段时会报错的解决方案
直接很长的字符串插入到clob字段中会报字符过长的异常,相信大家都会碰到这种情况 String sql = "insert into table(request_id,table_name, ...
- Oracle 插入超4000字节的CLOB字段的处理方法
最近在做系统开发的时候需要想Oracle数据库插入超过4000字节的CLOB字段,在网上查询了N久才发现下面的解决方案,故留存以备后查. 我们可以通过创建单独的OracleCommand来进行指定的插 ...
- java 存储oracle的clob字段
项目中有很长的字符创需要存储,用到了oracle的clob字段,直接很长的字符串插入到clob字段中会报字符过长的异常,于是便寻求解决方案.看到这个博客写的还不错 首先,创建一个含CLOB字段的表: ...
- 解决比较Oracle中CLOB字段问题
解决比较Oracle中CLOB字段问题 Oracle中CLOB和BLOB字段虽说在开发中满足了存放超大内容的要求,但是在一些简单使用中确频频带来麻烦.CLOB中存放的是指针,并不能直接取到实际值. ...
- oracle中clob字段的使用
oracle中定义了一个字段是clob的,由于用的是ssh的框架,结果在面向对象存取的时候出现clob类型字段和String类型字段的转换问题.开始查阅了clob字段和String字段的相互转换的方法 ...
- 可编辑的表格:jQuery+PHP实现实时编辑表格字段内容
在本例中,我们会通过jQuery实现单击将一个文本信息变为可编辑的表单,你可以对文本内容进行编辑,然后点击“确定”按钮,新的内容将发送到后台PHP程序处理,并保存到数据库:当点击“取消”按钮,则页面恢 ...
- DB2读取CLOB字段-was报错:操作无效:已关闭 Lob。 ERRORCODE=-4470, SQLSTATE=null
DB2读取CLOB字段-was报错:操作无效:已关闭 Lob. ERRORCODE=-4470, SQLSTATE=null 解决方法,在WAS中要用的数据源里面配置连个定制属性: progressi ...
随机推荐
- C语言按位运算符
C语言按位运算符 二进制反码或按位取反:~ 一元运算符~是逐位将1变为0,0变为1 Eg: ~(1001 1010) Result:(0110 0101) 按位与:& 二元运算符&是 ...
- 正向代理 vs 反向代理
正向代理: 内网客户端访问外网服务器的中介 反向代理: 外网客户端访问内网服务器的中介 正向代理: 代理访问外部资源 正向代理的用途: 1. 访问原来无法访问的资源 , 如googl 2. 可以做缓存 ...
- Sublime自动去除代码行尾多余的空格
Preferences - > Settings - User 加入: "trim_trailing_white_space_on_save": true Ctrl+s就会自 ...
- mpvue学习笔记(二)
六.mpvue入门 http://mpvue.com/ 1.安装 $ vue init mpvue/mpvue-quickstart my-project$ cd my-project$ npm in ...
- Spring Boot:定时任务
在我们开发项目过程中,经常需要定时任务来帮助我们来做一些内容, Spring Boot 默认已经帮我们实行了,只需要添加相应的注解就可以实现 1.pom 包配置 pom 包里面只需要引入 Spring ...
- CTeX安装警告
CTeX在安装过程中总会覆盖系统全部的环境变量,之前曾经导致诸如ping.ipconfig以及CUDA全部无法工作,只能手动重装和手动恢复系统默认环境变量. 网上给出的解决方案有:在电脑未关机之前通过 ...
- 解决Eclipse中.properties文件中文乱码问题
在.properties文件写注释时,发现中文乱码了,由于之前在idea中有见设置.properties文件的编码类型,便找了找乱码原因 在中文操作系统中,Eclipse中的Java类型文件的编码的默 ...
- Saiku控制页面展示的数据过长自动换行(二十四)
Saiku控制页面展示的数据过长自动换行 目前用到saiku来展示数据,发现数据文本过长也不会自动换行,然而用户那边又需要换行(会好看些),所以就来改一改源码啦 首先我们使用谷歌浏览器 inspect ...
- python之路-格式化输出、编码
格式化输出 user = input('Username:') pwd = input('Password:') msg = 'your username:%s,your password:%d,10 ...
- Python正则表达式的re库一些用法(上)
1.查找文本中的模式 search()函数取模式和要扫描的文本作为输入,找到这个模式时就返回一个match对象.如果没有找到模式,search()就返回None. 每个match对象包含有关匹配性质的 ...