Oracle varchar2型別欄位插入插入過長資料丟失問題

kisslfcr發表於2016-07-07
--建立一個表字元列型別為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部落格 ” ,連結:http://blog.itpub.net/29135257/viewspace-2121644/,如需轉載,請註明出處,否則將追究法律責任。

相關文章