ITPub博客

首页 > 数据库 > Oracle > Oracle varchar2类型字段插入插入过长数据丢失问题

Oracle varchar2类型字段插入插入过长数据丢失问题

原创 Oracle 作者:kisslfcr 时间:2016-07-07 09:24:19 0 删除 编辑
--创建一个表字符列类型为varchar2(40000)
create table t2 (name varchar2(40000));
--插入10000000个字母
insert into t2 values(rpad('a',10000000,'x'))
--但是查询字符长度发现只有4000
select length(name),name from t2
--插入3000长度的字符,查出长度为3000
insert into t2 values(rpad('b',3000,'y'))
select length(name),name from t2
--插入1000000000长度字符查询仍为4000
insert into t2 values(rpad('b',1000000000,'x'))
select length(name),name from t2

--但是如果插入一个实际的字段,则会报错,例如
insert into t2 values('aaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbgajdbjvahjsaddhagjdbjaughhrufgbjgaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvnadhvbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbcddddddddalkjgnakrgdvioeinfsadngvklnakdngkldsangkafdmgvna')


--创建一个表,字段类型为varchar2(5)
create table t3 (name varchar2(5))
insert into t3 values('abbbb')
insert into t3 values('abb')
--如果超过5个字母则会出现报错
insert into t3 values('abbbbb')
select length(name),name from t3


---------------------------------------
结论:当定义的varchar2类型的字段超长时,如使用rpad函数插入超过此长度的数据,则尾部的数据不会被插入,也就是说字段定义的长度限制了rpad函数的实际长度。
该实验实际应用中无甚大价值。


good luck
2016.07.07
clark

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29135257/viewspace-2121644/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-01-12

  • 博文量
    246
  • 访问量
    426537