• DBMS_LOB包的使用


    DBMS_LOB包的使用

    1、  dbms_lob.append(

    dest_lob  IN  OUT  NOCOPY  BLOB,

    src_lob  IN  BLOB)

       dbms_lob.append(

                    dest_lob  IN  OUT  NOCOPY  CLOB  CHARACTER  SET  ANY_CS,

                    src_lob   IN  CLOB  CHRACTER  SET  dest_lob%CHARSET);

      将源LOB变量的内容添加到目标LOB变量的尾部。

      示例:dest_lob  clob;

            src_lob  clob;

            dbms_lob.append(dest_lob,src_lob);

    2、  dbms_lob.close(lob_loc  IN  OUT  NOCOPY  BLOB/CLOB/BFILE)

    关闭已经打开的LOB

    3、  dbms_lob.compare(

    lob_1  IN  BLOB/CLOB/BFILE,

    lob_2  IN  BLOB/CLOB/BFILE,

    amount  IN  INTEGER:=4294967295,--要比较的字符数(CLOB),字节数(BLOB)

    offset_1  IN  INTEGER:=1,--lob_1的起始位置

    offset_2  IN  INTEGER:=1--lob_2 的起始位置)

       比较两个LOB的内容。

    4、 dbms_lob.copy(

    dest_lob  IN  OUT  NOCOPY  BLOB/CLOB/NCLOB,

    src_lob  IN  BLOB/CLOB/NCOB,

    amount  IN  INTEGER,

    dest_offset  IN  INTEGER:=1,

    src_offset  IN  INTEGER:=1)

       从src_lob中,以src_offset为起始位置,截取amount个字符/字节,放到dest_lob的dest_offset位置。

    5、 dbms_lob.createtemporary(

    lob_loc  IN  OUT  NOCOPY  BLOB/DLOB/NCLOB,

    cache  IN  BOOLEAN,

    dur  IN  PLS_INTEGER:=10)

       在用户的临时表空间中,建立临时LOB。

       lob_loc:指定LOB定位符。

       Cache:是否将LOB读取到缓冲区。

       Dur:指定何时清除临时LOB(10:会话结束时。12:调用结束时)。

    6、 dbms_lob.erase(

    lob_loc  IN  OUT  NOCOPY  BLOB/CLOB/NCLOB,

    amount  IN  OUT  NOCOPY  INTEGER,--字符/字节数

    • offset  IN  INTEGER:=1—起始位置

    )

       删除LOB变量的内容。

    7、 dbms_lob.fileclose(file_loc  IN  OUT  NOCOPY  BFILE)

    关闭打开的BFILE定位符所指向的OS文件

    8、 dbms_lob.filecloseall关闭当前会话已经打开的所有BFILE文件。

    9、 dbms_lob.fileexists(file_loc  IN  BFILE) RETURN  INTEGER

    确定file_loc对应的OS文件是否存在,1:存在。0:不存在。

    10、dbms_lob.filegetname(

    file_loc  IN  BFILE,

    dir_alias  OUT  varchar2,

    filename  OUT  varchar2)

         获取BFILE定位符所对应的目录别名和文件名。

    11、dbms_lob.fileisopen(file_loc  IN  BFILE)  RETURN  INTEGER

    确定BFILE对应的OS文件是否打开。

    12、dbms_lob.freetemporary(lob_lob  IN  OUT  NOCOPY  BLOB/CLOB/NCLOB)

    释放在默认临时表空间中的临时LOB。

    13、dbms_lob.fileopen(file_loc  IN  OUT  NOCOPY  BFILE,

    Open_mode  IN  BINARY_INTEGER:file_readonly)

    打开文件。

    14、dbms_lob.getchunksize(lob_loc  IN  BLOB/CLOB/NCLOB)  RETURN  INTEGER

    当建立包含CLOB/BLOB列的表时,通过指定CHUNK参数可以指定操纵LOB需要分配的字节数(数据库尺寸的整数倍)默认为数据块的尺寸。

    15、dbms_lob.getlength(lob_loc  IN  BLOB/CLOB/BFILE/NCLOB) RETURN  INTEGER

    获取长度。

    16、dbms_lob.instr(

    Lob_loc  IN  BLOB/CLOB/NCLOB/BFILE,

    Pattern  IN  RAW/VARCHAR2,

    Offset  IN  INTERGER:=1,

    Nth   IN  INTEGER:=1)  RETURN  INTEGER;

       返回特定样式数据从LOB某偏移位置开始出现N次的具体位置。

    17、dbms_lob.idopen(lob_loc  IN  BLOB/CLOB/BFILE)  RETURN  INT

    确定LOB是否打开,打开:1,未打开:0。

    18、dbms_lob.istemporary(lob_loc  IN  BLOB/CLOB/NCLOB)  RETURN  INTEGER

    确定定位符是否为临时LOB。

    19、dbms_lob.loadfromfile(

    dest_lob  IN  OUT  NOCOPY  BLOB/CLOB,

    src_file  IN  FILE,

    amount  IN  INTEGER,

    dest_offset  IN  INTEGER:=1,

    src_offset  IN  INTEGER:=1)

       将BFILE的部分或全部内容复制到目标LOB变量。

    20、dbms_lob.loadblobfromfile(

    dest_lob  IN  OUT  NOCOPY  BLOB,

    src_bfile  IN  BFILE,

    amount  IN  INTEGER,

    dest_offset  IN  OUT  INTEGER,

    src_offset  IN  OUT  INTEGER)

    将BFILE数据装载到BLOB中,并且在装载后取得最新的偏移位置。

    21、dbms_lob.open(

    lob_loc  IN  OUT  NOCOPY  BLOB/CLOB/BFILE,

    open_mode  IN  BINARY_INTEGER)

    打开LOB,open_mode(只读:dbms_lob.lob_readonly,读写:dbms_lob.lob_readwrite).

    22、dbms_lob.read(

    lob_loc  IN  BLOB/CLOB/BFILE,

    amount  IN  OUT  NOCOPY  BINARY_INTEGER),--IN:要读取的字符数,       

                                                OUT:实际读取的字符数。

    Offset  IN  INTEGER,

    Buffer  OUT  RAW/VARCHAR2—存储数据的变量

    )

    将LOB数据读取到缓存区中(变量中)。

    23、dbms_lob.substr(

    Lob_loc  IN  BLOB/CLOB/BFILE,

    Amount  IN  INTEGER:=32762,

    Offset  IN  INTEGER:=1) RETURN  RAW/VARCHAR2

    与字符处理函数SUBSTR()使用方法一样。

    24、dbms_lob.trim(

    Lob_loc  IN  OUT  NOCOPY  BLOB/CLOB/NCLOB,

    Newlen  IN  INTEGER)

    截断LOB到指定长度。

    25、dbms_lob.write(

    Lob_loc  IN  OUT  NOCOPY  BLOB/CLOB,

    Amount  IN  BINARY_INTEGER,

    Offset  IN  INTEGER,

    Buffer  IN  RAW/VARCHAR2)

    将缓冲区数据写入到LOB中的特定位置。

    26、dbms_lob.writeappend(

    Lob_loc  IN  OUT  NOCOPY  BLOB/CLOB/NCLOB,

    Amount  IN  BINARY_INTEGER,

    Buffer  IN  RAW/VARCHAR2)

        将缓冲区数据写到LOB尾部。

  • 相关阅读:
    七 、linux正则表达式
    六、通配符
    Codeforces1099D.Sum in the tree(贪心)
    叮,出现!
    Codeforces1056E.Check Transcription(枚举+Hash)
    2018.11.25 AMC-ICPC 亚洲区域赛(焦作站)吊银
    Gym101889J. Jumping frog(合数分解+环形dp预处理)
    Gym101889E. Enigma(bfs+数位)
    Gym101889B. Buggy ICPC(打表)
    Codeforces1076F. Summer Practice Report(贪心+动态规划)
  • 原文地址:https://www.cnblogs.com/edwardsun/p/3488687.html
Copyright © 2020-2023  润新知