一、本机环境
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
PL/SQL Release 10.2.0.1.0 - Production
select userenv('language') from dual;
AMERICAN_AMERICA.ZHS16GBK
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));
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。
--可见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 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;
END LOOP;
DBMS_OUTPUT.put_line (ls_buffer);
END;
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;
END LOOP;
DBMS_OUTPUT.put_line (ls_buffer);
END;
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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13726712/viewspace-687884/