Java更新Oracle的clob类型字段

virtuoso--DFF 27-实验课-std_cell2 阅读详情

1.查询该clob字段

<select id="selectItsmTask" resultType="java.util.HashMap"
		parameterType="java.util.HashMap">
		select a.task_oid,a.task_history from itsm_task a where a.task_oid = #{REQ_TASK_OID,jdbcType=VARCHAR}
	</select>

2.处理该clob字段查询结果

/**
	 * Clob类型 转String
	 * 
	 * @param clob
	 * @return
	 */
	private String ClobToString(Clob clob) {
		String ret = "";
		try {
			Reader read = clob.getCharacterStream();
			BufferedReader br = new BufferedReader(read);
			String s;
			s = br.readLine();
			StringBuffer sb = new StringBuffer();
			while (s != null) {
				sb.append(s);
				s = br.readLine();
			}
			ret = sb.toString();
			if (br != null) {
				br.close();
			}
			if (read != null) {
				read.close();
			}
		} catch (SQLException e) {
			logger.error("Clob转String失败(sql):" + e);
		} catch (IOException e) {
			logger.error("Clob转String失败:" + e);
		}
		return ret;
	}
	/**
	 * 修改clob字段内容
	 * 
	 * @param map
	 * @return
	 */
	private void updateClob(Map<String, Object> map) {
		Map<String, Object> updateInfo = new HashMap<String, Object>();
		updateInfo.put("reqTaskOid", map.get("REQ_TASK_OID"));
		// 获取itsm_task中的task_history字段内容
		Map<String, Object> result = fieldsModifyMapper.selectItsmTask(map);
		Clob columnClob = (Clob) result.get("TASK_HISTORY");
		String taskHistory = ClobToString(columnClob);
		// 修改itsm_task中的task_history字段内容
		// 创建xml的Document对象
		try {
			Document document = DocumentHelper.parseText(taskHistory);
			List lists = document.selectNodes("/workflow/node/fields/field");//寻找field节点
			Iterator iter = lists.iterator();
			while (iter.hasNext()) {
				Element fieldElement = (Element) iter.next();
				if (fieldElement.attributes().size() > 0) {
					Attribute attr = (Attribute) fieldElement.attributes().get(0);
					if (attr.getValue().equals("hope_finish_date")) {
						fieldElement.setText("<![CDATA["+String.valueOf(map.get("FLD_HOPE_FINISH_DATE_NEW"))+"]]>");
					}
					if (attr.getValue().equals("software_req_content")) {
						fieldElement.setText("<![CDATA["+String.valueOf(map.get("FLD_SOFTWARE_REQ_CONTENT_NEW"))+"]]>");
					}
					if (attr.getValue().equals("req_complexity")) {
						fieldElement.setText("<![CDATA["+String.valueOf(map.get("FLD_REQ_COMPLEXITY_NEW_ID"))+"]]>");
					}
					if (attr.getValue().equals("is_dev_assessment")) {
						fieldElement.setText("<![CDATA["+String.valueOf(map.get("FLD_IS_DEV_ASSESSMENT_NEW_ID"))+"]]>");
					}
				}
			}
			updateInfo.put("taskHistory", StringEscapeUtils.unescapeXml(document.asXML()));
		} catch (DocumentException e) {
			e.printStackTrace();
		}
		fieldsModifyMapper.updateItsmTask(updateInfo);
	}

3.更新该clob字段查询结果

<update id="updateItsmTask" parameterType="java.util.HashMap">
		update itsm_task a 
		<set>
			<if test="taskHistory != null">
				a.task_history =#{taskHistory,jdbcType=CLOB} 
			</if>
		</set>
		where a.task_oid = #{reqTaskOid,jdbcType=VARCHAR} 
	</update>

**注意:**使用StringEscapeUtils.unescapeXml(String str)方法,防止标签符号在存入Oracle数据库的时候被转义。

数学建模常用模型10 :数据包络(DEA)分析法(投入产出法) 数据包络分析是评价多输入指标和多输出指标的较为有效的方法,将投入与产出进行比较。它的结果包含的意思有: ①θ=1,DEA有效,表示投入与产出比达到最优 ②θ&lt;1,非DEA有效,表示投入与产出比没有达到最优,一般来说,θ越大说明效果越好。 数据包络分析是通过对投入的指标和产出的指标做了一个线性规划,并且进行变换后,然后根据其线性规划的对偶问题(线性规划对偶问题具有经济学意义),求解这个对... 阅读详情

相关推荐

Oracle BLOB字段更新方法

【代码】Oracle BLOB字段更新方法。

tttzzzqqq2018的博客 1347

javaoracle数据库中blob字段的处理

javaoracle数据库中blob字段的处理

java操作oracle blob类型(中)

视频第六部分共七部分 下载全才可以解压 博文链接:https://dlivan.iteye.com/blog/116258

oracle更新blob java_Oracle blob字段的插入和更新

blob字段。事实上是用来存储二进制类型的数据的,比方:大文本、文件、图片等信息直接存放到数据库中的一种解决方式所以,假设对于新插入的记录。存在blob类型字段,须要在blob字段中先使用EMPTY_BLOB(),让该条记录先保存到数据库中;然后,使用更新语句的方式,更新blob字段的值。代码例如以下://构造更新语句:string strSQL="update tablename set ...

weixin_32259717的博客 445

Oracle更新CLOB字段

本文介绍了在Oracle数据库中更新CLOB字段的方法和注意事项。我们可以使用UPDATE语句直接更新CLOB字段,也可以使用DBMS_LOB包进行更灵活的操作。在更新CLOB字段时,需要注意数据类型、事务和性能等方面的问题。希望本文对你在Oracle更新CLOB字段有所帮助。

allway2的博客 4805

java处理Oracle Clob Blob类型数据

特殊情况下oracle Raw类型数据的存储

GDFHGFHGFH的博客 1561

ORacleClob字段操作

J2EE操作Oracleclob类型字段关键字: javaOracle中,Varchar2支持的最大字节数为4KB,所以对于某些长字符串的处理,我们需要用CLOB类型字段CLOB字段最大支持4GB。还有其他几种类型:blob:二进制,如果exe,zipclob:单字节码,比如一般的文本文件.nlob:多字节码,如UTF格式的文件.以下就是对CLOG字段的操作方法,在我们的项目中帮助文档部分用

wangzhuoyan的专栏 9869

JAVA读取、写入、更新CLOB字段

Java代码   /*  --建表语句如下:  create table t_clob(          id varchar2(32) primary key,          clobfield CLOB          );   */      /**   * 读取CLOB字段的代码示例   *    * 作者:wallimn   * 时间:201

qq_14861367的专栏 2026

java 读取clob_JAVA读取、写入、更新CLOB字段

/*--建表语句如下:create table t_clob(id varchar2(32) primary key,clobfield CLOB);*//*** 读取CLOB字段的代码示例** 作者:wallimn* 时间:2015-1-16* 联系:wallimn@sohu.com*/public void readClob() {//自定义的数据库连接管理类Connection conn =...

weixin_39783360的博客 213

使用java + oracle插入clob类型的数据

使用java + oracle插入clob类型的数据,需要用以下的步骤:1、将数据插入数据库,对于clob字段,使其为空clob数据。例如:insert into test values(1,empty_clob())";2、从数据库中取出插入的clob字段,并将其赋值给oracle.sql...

chenqunan3231的博客 191

java clob类型怎么插入数据库_在Java + Oracle环境下 对于clob类型的数据的插入

SQL 类型 CLOBJavaTM 编程语言中的映射关系。SQL CLOB 是内置类型,它将 Character Large Object 存储为数据库表的某一行中的一个列值。默认情况下,驱动程序使用 SQL locator(CLOB) 实现 Clob 对象,这意味着 CLOB 对象包含一个指向 SQL CLOB 数据而不是数据本身的逻辑指针。Clob 对象在它被创建的事务处理期间有效。CL...

weixin_30582953的博客 1655

java clob类型怎么插入数据库_使用java + oracle插入clob类型的数据

使用java + oracle插入clob类型的数据,需要用以下的步骤:1、将数据插入数据库,对于clob字段,使其为空clob数据。例如:insert into test values(1,empty_clob())";2、从数据库中取出插入的clob字段,并将其赋值给oracle.sql.clob类型的变量。例如String sqll="select content from test whe...

weixin_39594296的博客 866

java处理CLOB字段

/**     *     *读数据库中clob字段的内容     *@return        clob字段值     *     * */    public String read(){        String rtn = null;        PreparedStatement pstmt=null;        ResultSet rs=null;        try

dlxjzhang的专栏 673

java clob存储_java oracle clob string 大字符串存储

[导读]单位用到了oracle存储string类型到数据库里的clob,上网查看资料找到解决方案。单位用到了oracle存储string类型到数据库里的clob,上网查看资料找到解决方案。如下:publicclassClobTest{staticStringurl="jdbc:oracle:thin:@10.12.10.18:1521:orcl";staticStringuser...

weixin_34312809的博客 435

oracle clog读取 php,在Java + Oracle环境下 对于clob类型的数据的插入

SQL 类型 CLOBJavaTM 编程语言中的映射关系。SQL CLOB 是内置类型,它将 Character Large Object 存储为数据库表的某一行中的SQL 类型 CLOBJavaTM 编程语言中的映射关系。SQL CLOB 是内置类型,它将 Character Large Object 存储为数据库表的某一行中的一个列值。默认情况下,驱动程序使用 SQL locato...

weixin_39716800的博客 152

hibernate插入clob类型的数据

实体Test中clob类型字段定义如下:(部分代码) private Clob resultStr; @Lob @Basic(fetch = FetchType.EAGER) @Column(name = "RESULTSTR",columnDefinition="CLOB") public Clob getResultStr() { return resultStr; } ...

baidu_28369619的博客 690

java clob 操作_java 操作clob

之前在学校的时候做的都是练习,小儿科,遇到的情况完全都在自己的设想范围内。最近老是遇到字段溢出的情况,但是varchar2好像最长也只有4000个字符。所以不得不另辟蹊径,就找上了clob字段。package test;import java.io.BufferedReader;import java.io.IOException;import java.io.Writer;import java...

weixin_29346059的博客 420

java clob 操作_Java Clob 操作

java操作数据库clob字段的简单例子:package com.test.db.clob;import java.io.BufferedReader;import java.io.IOException;import java.io.Writer;import java.sql.Clob;import java.sql.Connection;import java.sql.DriverManag...

weixin_31833307的博客 460

使用MATLAB的simulink仿真模糊PID并与普通PID简单对比

MATLAB 2018b 版本

上一篇: win10下访问vm虚拟机Linux服务
下一篇: Sublime Text3使用教程详解
lianjs666
博客等级 码龄11年 9粉丝 16原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值