ORACLE LOB大对象处理
主要是用来存储大量数据的数据库字段,最大可以存储4G字节的非结构化数据。
主要介绍字符类型和二进制文件类型LOB数据的存储,单独介绍二进制类型LOB数据的存储。
一,Oracle中的LOB数据类型分类
1,按存储数据的类型分:
①字符类型:
CLOB:存储大量 单字节 字符数据。
NLOB:存储定宽 多字节 字符数据。
②二进制类型:
BLOB:存储较大无结构的二进制数据。
③二进制文件类型:
BFILE:将二进制文件存储在数据库外部的操作系统文件中。存放文件路径。
2,按存储方式分:
①存储在内部表空间:
CLOB,NLOB和BLOB
②指向外部操作系统文件:
BFILE
二,大对象数据的录入
1,声明LOB类型列
/*
conn scott/tiger;
Create TableSpace ts5_21
DataFile 'E:\Oracle\ts5_21.dbf'
Size 5m;
*/
Create Table tLob (
no Number(4),
name VarChar2(10),
resume CLob,
photo BLob,
record BFile
)
Lob (resume,photo)Store As (
Tablespace ts5_21 --指定存储的表空间
Chunk 6k --指定数据块大小
Disable Storage In Row
);
2,插入大对象列
①先插入普通列数据
②遇到大对象列时,插入空白构造函数。
字符型:empty_clob(),empty_nclob()
二进制型:empty_blob()
二进制文件类型:BFileName函数指向外部文件。
BFileName函数:
BFileName(‘逻辑目录名’,‘文件名’);
逻辑目录名只能大写,因为数据词典是以大写方式存储。Oracle是区分大小写的。
在创建时,无需将BFil
相关文档:
由于以前都是在sqlserver 2005处理,现在客户要求oracle数据库服务器,
最初的代码为:
allRecordSize = (Integer) rs1.getObject(1); //Integer allRecordSize=0;
当执行的时候报:BigDecimal无法转化为Integer类型
为了兼容两者修改后的代码为:
Object o = rs1.getObject(1);
&nbs ......
CASE表达式可以在SQL中实现if-then-else型的逻辑,而不必使用PL/SQL。CASE的工作方式与DECODE()类似,但应该使用CASE,因为它与ANSI兼容。
CASE有两种表达式:
1. 简单CASE表达式,使用表达式确定返回值.
语法:
CASE search_expression
WHEN expression1 THEN result1
WHEN expression2 THEN ......
先构造一个表:
create table emp2(
id number(2),
name varchar(10),
currdate date,
action varchar2(1)
)
创建触发器:
create or replace trigger d_i_u_emp2
after insert or update or delete on mysort
begin
if inserting then
insert into emp2 values (12,'dog',sysdate,'i');
elsif deleting then ......
我的机器改了计算机名称,再开机时,oracle出现问题,开机时老是报“agntsrvc.exe出错”,经过搜索发现是下列问题:
1.agntsrvc.exe是Oracle Intelligent Agent服务对应的程序。
2.因此服务是自动启动的,所以一般多在电脑启动时弹出系统错误。
3.问题处理:(本备份养成习惯哦)
删除了 %ORACLE_HOME%/ora ......