Create Table t_varchar (
-- varchar2为可变长度字符类型(必须指定范围0-4000)
-- 虽然是变长,但是字符数如果大于指定长度会报错
col_varchar2 VARCHAR2(5),
-- char为定长字符类型(必须指定范围0-2000)
-- 默认长度1
col_char CHAR,
-- 长度不够会加空格填充
col_char2 CHAR(5),
-- long和clob的区别:
-- 1.一个表中只能有一个LONG,但可以有多个CLOB
-- 2.clob最长可以4G,long是2G
-- 3.存储方式不同,LONG是把值真正存在记录上的,而CLOB只是在记录上存一个指针
-- 最大长度2G的可变长度字符数据(通常情况使用clob而不是long,因为long有很多约束)
-- col_long LONG,
-- 最大4G的字符数据(Character Large Object)
col_clob CLOB,
-- number(p,s)
-- p(1-38):整数位长度+小数位长度
-- s(-84-127):小数为长度,大于指定长度自动四舍五入,默认小数位精度为5
col_number NUMBER,
col_number2 NUMBER(3),
-- number(p,s)
-- 如果指定,则整数位为必须的满足指定长度,这里整数位为3-2=1,则整数位长度不能大于1,否则报错
-- 小数位可以大于长度,但数据库会自动四舍五入到指定位
col_number3 NUMBER(3,2),
-- 注意:查询出来默认会进行15位round,但是实际是没有精度问题的,用to_char函数查看原始数据
-- 注意:在pl/sql developer中->tools->preferences->sql windows->number fields tochar,选中该选项即可解决15位自动round问题。
col_number4 NUMBER(*,2),
-- 日期类型(4712.1.1-9999.12.31)
create_time DATE,
-- 原始二进制数据,必须指定最大长度(2000)
col_raw RAW(1000),
-- 原始可变长度二进制数据,(2G)
col_long_row LONG RAW,
-- 二进制数据,(4G)
col_blob BLOB
-- 二进制数据存在一个外部文件中,(4G)
,col_bfile BFILE
)
-- bfile数据类型使用
create directory bfiledir2 as 'D:\oracle_bfile';
-- GRANT READ ON DIRECTORY oracle_bfile TO scott;
grant read on directory bfile_dir to scott;-- 这里使用bfile类型的的一个大坑(文件名称必须大写才行,之前用小写的一直显示valueError)
INSERT INTO t_varchar VALUES('aaa','c','bbb',
-- 'longlonglong',
'clobclobclob',
123456789012345678.12345678901,123.52345678901,1.49999,123456789012345678.12345678901,
sysdate,utl_raw.cast_to_raw('aaa'),HEXTORAW('11'),utl_raw.cast_to_raw('ab')
,BFILENAME(upper('aaa'), '11.jpg')
);
oracle基本数据类型即测试
最新推荐文章于 2024-05-10 06:59:26 发布