oracle 数据类型 hive数据类型

时间:2024-04-07 07:05:31

 

下面介绍几种常用的数据类

oracle 数据类型 hive数据类型

 

(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