在Oracle中,一个很短的字符存在Clob中被截断

在Oracle中,一个很短的字符存在Clob中被截断

以前别人的的一个存储过程,用Clob字段拼接的SQL,今天突然报错,我跟踪了下,发现存在Clob中的字符被截断,其中有个字符串很短,能在Varchar2中存储,但是也被截断了,这是什么问题?

如果改写SQL语句的话比较麻烦,所以还是希望继续用Clob字段,有没有人碰到这个问题?

0

1个回答

感觉上跟字符集可能有关系,字符集一致吗?

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
clob大字段截取值
oracle字段clob类型值判断可以用dbms_lob.instr(a, 'b', 1, 1) > 0.    例如: select notifyid,        substr(m, instr(m, 'aa', 1, 1) + 87, 18) as aa,        substr(m, instr(m, 'bb', 1, 1) + 24, 12) as bb,        
oracle clob类型截取值
对oracle clob类型字段操作,查找某字符串位置用instr,截取用substr,例如:                select notifyid,        substr(m, instr(m, 'aa', 1, 1) + 87, 18) as aa,        substr(m, instr(m, 'bb', 1, 1) + 24, 12) as bb,      
Oracle 自定义函数实现split功能,支持超长字符串和clob类型的分隔
一年又快过去了,,,,12月,广州的12月,一天冷,一天热,一周内体验四季!   先分享一个,oracle中比较常用的,根据分隔符拆分字符串为多行结果集的sql写法,平时对于不是特别长的字符串的拆分,用着还是挺方便的。代码及查询的效果如下: select regexp_substr('abc,def,ghi,jkl', '[^,]+', 1, level) c1 from dual c...
PL/SQL Developer中打印超长clob字段
---打印超长的clob字符------------------------------------------ declare c1 clob; strLog varchar2(2000);--单次输出的临时变量 loopCount number(5); begin dbms_output.enable(50000);--设置test window 的dbms output
Oracle内正则替换Clob类型内的字符串
update zzwk_zzw_todo_temp_csyxzm t set t.info_body =regexp_replace(info_body,'"null"' ,'""' ); commit;
将长于4000字符的字符串转化为CLOB类型存入数据库
当ORACLE需要存放一些不定长而长度又长于4000字符的字符串时,可考虑使用ORACLE的CLOB类型进行存储,此时就要将该字符串转化为CLOB类型。
如何往clob类型中插入一个超过10000 bytes 的字符串
如何往clob类型中插入一个超过10000 bytes 的字符串 You'll have to assign the value to a variable & use the variable to insert the data DECLARE     v_long_text CLOB; BEGIN     v_long_text := '
ORACLE CLOB 类型转换为字符串
在ORACLE 中存储 大量 文本 超过了 3000个汉字  varchar 装不下 迫不得已使用了  : CLOB 类型   CLOB 类型转换为字符串:   select   dbms_lob.substr(ADDR_SHAPE,8000)   from DW_MD_ADDRESS t  where  OID = 1...
Clob字段的值部分替换 replace和空判断
[code="sql"] --oracle中可以对Clob字段进行替换操作 UPDATE table1 t SET t.sale = REPLACE(t.sale, '替换前', '替换后') WHERE t.sale like '%替换前%'; --非空判断 t.clobitem is not null and dbms_lob.getlength(t.clobite...
【Oracle】 Blob转Clob的字符UTF16转换UTF8问题
在数据迁移过程中,原数据字段是Blob类型需转换为CLOB,直接使用dbms_lob.converttoclob 转换后 发现字符格式UTF16不对
【Oracle】 Oracle BLOB转CLOB出现字符乱码问题
【问题】BLOB类型转CLOB出现乱码问题CREATE OR REPLACE FUNCTION BlobToClob(blob_in IN BLOB) RETURN CLOB AS v_clob CLOB; v_varchar VARCHAR2(4000); v_start PLS_INTEGER := 1; v_buffer PLS_INTEGER :...
Oracle Clob字段保存时提示字符串过长
因为Oracle的SQL语句不能过长,大约4K限制,所以如果保存时Clob字段的内容过长的话会导致保存出错,提示"ORA-01704:文字字符串过长 " 我的解决方案是: string ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings[""].ConnectionString;
oracle对查询clob字段内容与转义&符号处理方式
select * from table t where not REGEXP_LIKE( t.opinion, chr(38)||'nbsp;' ); REGEXP_LIKE(a,b);正则表达式的函数 a代表你需要查询的数据。b匹配的表达式 特殊字符&符号转义用chr(38)...
ORACLE里的CLOB字段进行模糊查询
在oracle中多大文本数据我们没有办法使用like进行查询,所以只能使用oracle中的函数。 语法:select * from TABLE表 where dbms_lob.instr(字段名(clod类型),'查询条件',1,1) > 0 在Oracle中,可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符。其语法为: instr(sourceString,de
ORACLE 字符串定位、截取
SQL> select d.deptno, wm_concat(e.ename) nn   2    from emp e, dept d   3   where e.deptno = d.deptno   4   group by d.deptno;     DEPTNO NN ---------- ---------------------------------------
Oracle中如何查询CLOB字段类型的内容
Oracle中如何查询CLOB字段类型的内容 语法 select * from table_name where dbms_lob.instr(字段名(clod类型),'查询条件',1,1) > 0; 具体实例 /*查询质押单据信息*/ SELECT * FROM EDI.MID_LOG_OPEN_PLATFORM WHERE SENDER='JD' AND CREATE_TIME >
Oracle中将Clob字段转换成字符串
1.利用dbms_lob.substr()方法可将对应字段转换成字符串如下: select dbms_lob.substr(content) from NEWS 2.Java 中转换,对字段大小没限制
拼组SQL中,Oracle插入超4000字节的CLOB字段的处理方法
我们可以通过创建单独的OracleCommand来进行指定的插入,即可获得成功,这里仅介绍插入clob类型的数据,blob与此类似,这里就不介绍了,下面介绍两种办法       在通过拼组sql语句来实现数据插入的应用中,我们很有可能会遇到需要插入大型数据的情况,例如,在oracle中需要插入字节数超过4000的字段内容时,我们如果通过简单的拼组sql语句来实现插入,显然就会出现问题,而在
Orcale大字段截取查询,查询CLOB字段xml 某节点的值
开发中用到不少CLOB字段 ,今天要查询导出数据,需截取CLOB大字段某节点的数据,找到了如下方法
在plsql中,总是遇到在clob类型字段上存储数据出错--字符串太长,现在有一个比较简单的解决办法
//利用传参数                         OracleConnection Con = new System.Data.OracleClient.OracleConnection(strCon);                         Con.Open();     //自己用时,替换自己的sql语句                     string c
Mybatis向oracle数据库插入clob字段,长度大于4000时报错
重点 先用empty_clob()代替要插入的clob数据 用真正的数据去替换原先插进去的空clob 创建表 create table test( id varchar2(200), clob_filed clob ) mybatis对应sql <!-- 插入Clob字段长度超过4000测试 NO.1 先用empty_c...
sql查询clob字段并正常显示
oracle中的clob类型字段不能直接显示出来,需要借助Oracle系统dbms_lob中substr方法处理,如select dbms_lob.substr(clobField) from table如果内容输出不全,进行如下设置set heading off 不输出结果第一行的标题 (字段名称)set long 40000  设置输出的字节数(比较大数)...
oracle 替换clob里面的某个特定的字符串
关键字:replace,dbms_lob.instr 第一步:判断clob里面是有包含某个特定的字符串:假如是说“/admin/ewebeditor/uploadfile/“ 关键字:dbms_lob.instr Code: select st.id,st.content from t_d_strategy st where dbms_lob.instr(st.cont
Oracle CLOB 字段插入时提示字符过长
这个问题,不是指clob字段容不下那么长的内容,而是执行的sql文本过长。 解决办法是,运行带参数的sql语句。 string sql = @"insert into table1 (table_id,table_name,clob_field) values (:table_id,:table_name,:clo
Oracle数据库clob类型转String类型(ssh)
Oracle数据库clob类型转String类型(ssh) String类型转Oracle数据库clob类型 Sting text="这是一个测试"; CLOB clob=(CLOB) Hibernate.createClob(text); Oracle数据库clob类型转String类型 private String clobToString(Clob clob) throw...
ORACLE中CLOB字段转String类型
ORACLE中CLOB字段转String类型
CLOB 字段类型报错 ORA-01704: 文字字符串过长的解决
CLOB字段类型报错 ORA-01704:文字字符串过长的解决
Oracle中Clob类型的字段数据转换成String字符串
具体函数如下: //clob 转换 String (传入 clob 类型的 obj 对象) public static String getClob2String(Object obj) { String str = ""; try { CLOB clob = (CLOB) obj; if (clob == null || clob.length() == 0) { str = ""
【oracle】查找字符串的位置 instr
参看这里 :  传送门
使用触发器使用DBLINK同步带有CLOB字段的表的DML
-- 本机vincent用户创建clob测试表 conn vincent/vincent create table emp_clob(empno NUMBER(4), ename CLOB); alter table emp_clob add constraint PK_emp_clob primary key (empno); create table emp_clob_copy(empno N...
oracle数据库clob字段转换成字符串,方便数据转换和数据导出
oracle clob字段转换成 varchar,nvarchar2
oracle中varchar2字段转clob字段,并提供读取方法。
转载自:http://my.oschina.net/guyfar/blog/73837 问题描述 CMS系统中有一个表的字段(如:content)是varchar2类型(最多只能存储4000字符),不够用了,因此将其改为clob类型(支持4G存储量)。 如果该字段content列不为空的话,不能直接通过sql语句修改其字段类型,会报ORA-22858的错误,如图所示:
Oracle数据库插入CLOB字段时,提示ORA-01704:字符串文字太长【解决方案】
方法一:1、打开PL/SQL工具,输入SQL语句,如下:        select * from table1 for update;2、把更新的小锁打开,如图:    3、找到CLOB字段,点击 '...', 将内容复制进来,点击'确定'按钮,点击绿色对勾提交改变,完美解决。                                                 图1         ...
关于ORACLE触发器中存在CLOB字段不能同步数据解决方法
最近项目中与其它公司做对接的时候需要同步其它公司的数据,选择用触发器实时同步数据。当表中存在CLOB字段时,同步过来的数据中CLOB字段无数据。 在网上搜索了一大堆答案...
spring+hibernate中clob、blob字段的处理方法
今天在开发项目的时候遇到CLOB字段的问题,和平时的String字段一样处理发现HQL的查询结果是NULL,到网上查找了一些资料,处理方式作了一些修改以后,数据成功显示,现总结配置如下: applicationContext.xml配置修改如下: <bean id="sessionFactory" class="org.springframework.orm.hibernate3.L...
在Oracle中字段类型设置为clob时,报 ORA-01704:字符串文字太长
         单独的在Oracle的表中把字段的数据类型设置为clob后,用insert into 往里面插入数据的时候,当往里面插入的字节小于2000时是可以正常插入的,当插入的数据大于2000个字节的时候就会报 ORA-01704:字符串文字太长    解决办法:   Declare            V_LANG CLOB;  BEGIN            V_LAN...
oracle数据库中使用sql将clob转化为字符串
在oracle使用过程中,通常使用plsql进行简单的数据查看,但是如果一些信息以clob的形式来展示,多条数据查看很不方便,通过系统的dbms_lob.substr(字段,长度,起始位置)方法将clob转换为varchar2类型
oracle中的clob字段的回车换行的处理
贴两个公共方法,一个是在你插入数据库时把字符串转换成clob类型的,另一个是在查询时,将clob字段转换成字符串; 本人开发环境:Ext+beehive+oracle 第一个方法: /** * 将String转为Clob * * @param strPar * @return * @throws Exception */ public static Clob st
对clob字段插入报ORA-01704: 字符串文字太长
对clob插入  ORA-01704: 字符串文字太长解决办法:把字符赋值给一个变量,然后赋值update语句declarev_clob clob :='字符 内容';beginUPDATE    表名    SET 字段名 = v_clob where 条件 ; end;...
ORACLE数据库获取CLOB字段的字节长度
SELECT DBMS_LOB.GETLENGTH(字段名) FROM 表名
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java学习 存在的问题 大数据局机构存在的问题