下面介绍几种常用的数据类
(1)CHAR()该数据类型用于定义固定长度的字符串,其中用于指定字符串的最大长度,必须是正整数且不超过32767。使用CHAR类型定义变量时,如果没有指定则默认值为1。需要注意的是,在PL/SQL块中,使用该数据类型操纵CHAR表列时,其数值的长度不应超过2000字节。
(2)VARCHAR2()该数据类型用于定义可变长度的字符串,其中用于指定字符串的最大长度,必须是正整数且不超过32767。使用VARCHAR2类型定义变量时,必须指定的值。需要注意的是,在PL/SQL块中,使用该数据类型操纵VARCHAR2表列时,其数值的长度不应超过4000字节。
(3)NUMBER(precision,scale)该数据类型用于定义固定长度的整数和浮点数,其中precision表示精度,用于指定数字的总位数;scale表示标度,用于指定小数点后的数字位数,默认值为0,即没有小数位数。例如“v_score NUMBER(4,1)”表示v_score是一个整数部分最多为3位、小数位数最多为1位的变量。
create table t_stu5(
stuid1 number(2),
stuid2 number(2,1),
stuid3 number(2,3),
stuid4 number(4,2)
);
precision scale
T_STU5 STUID4 NUMBER 22 4 2
T_STU5 STUID3 NUMBER 22 2 3
T_STU5 STUID2 NUMBER 22 2 1
T_STU5 STUID1 NUMBER 22 2 0
insert into t_stu5(stuid1)values(1);
insert into t_stu5(stuid1)values(10);
insert into t_stu5(stuid1)values(100); -- "value larger than specified precision allowed for this column"
insert into t_stu5(stuid1)values(99); --ok
insert into t_stu5(stuid1)values(1.0); --ok > 1
insert into t_stu5(stuid1)values(16.5); -- ok >17
insert into t_stu5(stuid1)values(16.3); --ok >16
select * from t_stu5
create table t_stu6(
stuid1 number(4)
);
insert into t_stu6(stuid1)values(1000); -- okok
insert into t_stu6(stuid1)values(10000); -- "value larger than specified precision allowed for this column"
select * from t_stu6
create table t_stu7(
stuid1 number(4,2) -- 整数部分最多为4-2 = 2位,小数位最多为2位
);
insert into t_stu7(stuid1)values(1234); -- 值大于为此列指定的允许精度
insert into t_stu7(stuid1)values(1234.12); -- 值大于为此列指定的允许精度
insert into t_stu7(stuid1)values(123.12); -- 值大于为此列指定的允许精度
insert into t_stu7(stuid1)values(12.123); -- OK, 12.12
insert into t_stu7(stuid1)values(123.36); -- 值大于为此列指定的允许精度
insert into t_stu7(stuid1)values(123.6); -- 值大于为此列指定的允许精度
insert into t_stu7(stuid1)values(9.6234); -- ok 9.62
insert into t_stu7(stuid1)values(99.99); -- ok 99.99
insert into t_stu7(stuid1)values(99.4); -- ok 99.4
select * from t_stu7
select * from sys.
SELECT a.*
FROM user_tab_columns a -- , user_col_comments b
WHERE a.TABLE_NAME = 't_stu5'
AND b.table_name = 't_stu7';
SELECT b.* from user_col_comments b