LOB的存储过程

上一篇 / 下一篇  2009-07-02 10:48:34 / 个人分类:Oracle

   读书笔记喽~~
   LOB分为内部LOB和外部LOB,内部LOB包括CLOB,BLOB,NCLOB三种类型,它们的数据被存储在数据库中,并且支持事务操作(提交、回退、保存点);外部LOB只有BFILE一种类型,被存储在操作系统文件中,且不支持事务操作。CLOB/NCLOB用于存储大批量字符数据,BLOB用于存储大批量二进制数据,BFILE存储着指向OS文件的指针。
编写PL/SQL应用程序时,可以使用临时LOB,临时LOB相当于局部变量,与数据库表无关,并且只能由当前应用程序建立和使用。注意:当在SQL语句中使用临时LOB时,它们只能作为输入宿主变量使用,可在WHERE子句,VALUES子句和SET 子句中使用临时LOB,而不能在INTO子句中使用临时LOB。
 
append:该过程用于将源LOB变量的内容添加到目标LOB变量的尾部。只适用于内部LOB类型(BLOB/CLOB),不适用于BFILE类型。
declare
   dest_lob clob;
   src_lob clob;
begin
   src_lob := 'china'
   dest_lob := 'hello, '
   dbms_lob.append(dest_lob,src_lob);
   dbms_output.put_line(dest_lob);
end;
------------hello, china
CLOSE过程用于关闭已经打开的LOB:
dbms_lob.close(lob_loc  in out nocopy blob/clob/bfile);
COMPARE用于比较同类型的LOB
COPY将源LOB变量的部分或全部内容复制到目标LOB变量中,只适用于内部LOB类型。
dbms_lob.createtemporary会将临时LOB建立在用户的临时表究空间。
dbms_lob.createtemporary(lob_loc in out nocopy blob/clob/nclob, cache in boolean,dur in pls_integer := 10);
lob_loc用于指定LOB定位符,CACHE用于指定是否要将LOB读取到缓冲区,DUR用于指定何时清除临时LOB(10:会话结束清除临时LOB,12:调用结束清除临时LOB)。
erase用于删除LOB变量的全部内容或部分内容,只适用于内部LOB类型。
FILECLOSE:用于关闭已经打开的BFILE定位符所指向的OS文件。
filecloseall用于关闭当前会话已经打开的所有BFILE文件。
fileexists用于确定BFILE定位符所指向的OS文件是否存在。若存在返回1,不存在返回0.
filegetname:用于取得BFILE定位符所对应的目录别名和文件名。
fileisopen用于确定BFILE所对应的OS文件是否已经打开。打开返回1 ,没有打开返回0.
FILEOPEN用于打开BFILE所对应的OS文件。打开时可以指定文件的打开模式。OS文件只能以只读方式打开。
FREETEMPORARY:用于释放在转为临时表空间中的临时LOB。
GETCHUNKSIZE使用该函数,可以取得CHUNK参数所对应的值。
GETLENGTH用于取得LOB数据的实际长度。
instr用于返回特定样式数据在LOB中从某偏移位置开始第N次出现时的具体位置。既适用于BLOB和CLOB也适用于BFILE。
ISOPEN用于确定LOB是否已经被打开,既适用于BLOB和CLOB也适用于BFILE。
ISTEMPORARY用于确定LOB定位符是否为临时LOB。是则返回1,否则返回0.
LOADFROMFILE用于将BFILE的部分或者全部内容复制到目标LOB变量(CLOB或BLOB)中
LOADBLOBFROMFILE用于将BFILE数据装载到BLOB中,并且在装载后可以取得新的偏移位置。
LOADCLOBFROMFILE用于将BFILE数据装载到CLOB中,当使用该过程装载数据到CLOB中时,可以指定字符集ID号,并进行字符集转换。
open用于在打开LOB时指定LOB的读写模式。只读(dbms_lob.lob_readonly),读写(dbms_lob.lob_readwrite),既适用于BLOB和CLOB也适用于BFILE。
read:将LOB数据读取到缓冲区中,既适用于BLOB和CLOB也适用于BFILE。
SUSTR用于返回LOB中从指定位置开始的部分内容,既适用于BLOB和CLOB也适用于BFILE。
TRIM:用于截断LOB内容到指定长度,只适用于BLOBB,CLOB,不适用于BFILE。
WRITE用于将缓冲区数据写入到LOB中的特定位置,只适用于BLOBB,CLOB,不适用于BFILE。
WRITEAPPEND:将缓冲区数据写入到LOB尾部,只适用于BLOBB,CLOB,不适用于BFILE。

TAG:

 

评分:0

我来说两句

Open Toolbar