>日期时间数据类型
日期时间数据类型用于存储日期和时间值。
a:date
{
用于存储固定长度的日期和时间数据。它支持的日期范围为:从公元前(B.C.E)4712年1月1日到公元(C.E)9999年12月31日。
date数据类型包括时间。
日期函数sysdate返回当前日期和时间。
初使化参数NLS_DATE_FORMAT用于设置默认日期格式。
}
b: timestamp
{
用于存储日期和时间。是date数据类型的扩展,它存储年,月,日,小时,分钟和秒。
日期函数SYSTIMESTAMP返回当前的日期时间信息。
语法:
timestamp [(precision)]
其中:
precision:是精度。它代表秒字段小数部分中的位数。必须使用0到9之间的整数文字。默认为6。
初使化参数NLS_TIMESTAMP_FORMAT用于设置默认的timestamp格式。
}
>布尔数据类型
用于存储逻辑值。
boolean
{
用于存储逻辑值true,false和null。
只允许对boolean变量执行逻辑操作。
}
lob类型
大对象(lob)数据类型用于存储非结构化数据。大小限于4GB。DBMS_LOB程序包用于操作lob数据。
>bfile
用于将大型二进制对象存储在操作系统文件中。即文件定位器。
定位器包含一个目录的别名,用于指定目录的完整路径。
bfile数据类型的数据是只读的,不能修改。
语法:
bfilename('目录别名','文件名')
其中:
目录别名使用create directiry语句创建。
>blob
用于将大型二进制对象存储在数据库中。blob数据类型可用于事务处理。
例:
要在表中插入图象,先使用create directory 目录名 as '系统目录';创建一个目录名。
使用grant read on directory 目录名 to 用户;授予读取权限。
declare
l_bfile bfile;
l_blob blob;
begin
insert into 表名('blob类型的列名')
values (EMPTY_BLOB()) return 列名 into l_blob;
l_bfile :=BFILENAME('目录别名','文件名');
DBMS_LOB.OPEN(l_bfile,DDMS_LOB.FILE_READONLY); --打开文件
DBMS_LOB.LOADFROMFIFE(l_blob,l_bfile,DBMS_LOB.GETLENGTH(l_bfile)); --加载到l_blob变量中。
DBMS_CLOSE(l_bfile); --关闭l_bfile文件。
commit;
END;
/
*****************************************************
oracle中插入一个blob数据 (来自Google)
create or replace directory utllobdir as 'c:\xxx'; --你的BLOB文件所在位置。
create table bfile_tab (bfile_column BFILE);
create table t (blob_column BLOB);
----------------------------------------
declare
a_blob BLOB;
a_bfile BFILE := BFILENAME('UTLLOBDIR','BLOB文件名');
begin
insert into bfile_tab values (a_bfile)
returning bfile_column into a_bfile;
insert into t values (empty_blob())
returning blob_column into a_blob;
dbms_lob.fileopen(a_bfile);
dbms_lob.loadfromfile(a_blob, a_bfile, dbms_lob.getlength(a_bfile));
dbms_lob.fileclose(a_bfile);
commit;
end;
本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360656,如需转载请自行联系原作者
本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360656,如需转载请自行联系原作者