ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 也谈varchar2的最大值

也谈varchar2的最大值

原创 Linux操作系统 作者:dengxm 时间:2011-02-24 17:23:52 0 删除 编辑

一、本机环境
select * from  v$version where rownum <=2;
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production 
 
select userenv('language') from  dual;
 
AMERICAN_AMERICA.ZHS16GBK
二、实验
1、varchar2的最大长度
create table test1 (name varchar2(4001));
---ORA-00910: specified length too long for its datatype
--可见varchar2的最大长度是4000bit。
 
2、char的最大长度
create table test2 (name char(2001));
--ORA-00910: specified length too long for its datatype
--可见char的最大长度是2000bit。

3、varchar2的最大插入英文字节
create table test (name varchar2(4000));
DECLARE
   i           NUMBER (6)      := 1;
   ls_buffer   VARCHAR2 (4000);
   v_temp      VARCHAR2 (6);
BEGIN
   WHILE (i <= 400)
   LOOP
      FOR j IN 0 .. 9
      LOOP
         -- select substr(to_char(j),0,1) into v_temp from  dual;
         ls_buffer := ls_buffer || j;
      END LOOP;
      i := i + 1;
   END LOOP;
   DBMS_OUTPUT.put_line (ls_buffer);
END;
 
  
 将其结果插入test表  
 
select lengthb(name) from  test   ---4000

-------------------------------------------------------------------------------------------------------
4、varchar2的最大插入汉字

DECLARE
   i           NUMBER (6)      := 1;
   ls_buffer   VARCHAR2 (4000) ;
   v_temp      VARCHAR2 (6);
BEGIN
   WHILE (i <= 100)
   LOOP
      FOR j IN 0 .. 9
      LOOP
         -- select substr(to_char(j),0,1) into v_temp from  dual;
         v_temp := '中国';
         ls_buffer := ls_buffer||v_temp;
      END LOOP;
      i := i + 1;
   END LOOP;
   DBMS_OUTPUT.put_line (ls_buffer);
END;
select    lengthb('汉')    from    dual;     -----二个字节
select lengthb('中国') from  dual;    ---四个字节
 
将其结果插入test表,OK没有问题。
select * from  test;
create table test3 (name varchar2(6));
insert into test3 values('中国人1');
ORA-12899: value too large for column "THSIMIS"."TEST3"."NAME" (actual: 7, maximum: 6)
 
---------------------------------------------------------------------------------
以上过程,和我们想的一样没有出现大家说的异常情况,欢迎大家说一下自己的想法。
 

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

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

注册时间:2008-10-08

  • 博文量
    54
  • 访问量
    143036