包DBMS_LOB用于在大对象上进行操作。

表 1.DBMS LOB Functions/Procedures

Function/Procedure

Function or Procedure

Return Type

Description

APPEND(dest_lob IN OUT,src_lob)

Procedure

n/a

Appends one large object to another.

COMPARE(lob_1, lob_2 [, amount[, offset_1 [, offset_2 ]]])

Function

INTEGER

Compares two large objects.

CONVERTOBLOB(dest_lob IN OUT,src_clob, amount, dest_offsetIN OUT, src_offset IN OUT,blob_csid,

lang_context IN OUT,warning OUT)

Procedure

n/a

Converts character data to binary.

CONVERTTOCLOB(dest_lob IN OUT,src_blob, amount, dest_offsetIN OUT, src_offset IN OUT,blob_csid,

lang_context IN OUT,warning OUT)

Procedure

n/a

Converts binary data to character.

COPY(dest_lob IN OUT, src_lob,amount [, dest_offset [,src_offset ]])

Procedure

n/a

Copies one large object to another.

ERASE(lob_loc IN OUT, amount IN OUT [, offset ])

Procedure

n/a

Erase a large object.

GET_STORAGE_LIMIT(lob_loc)

Function

INTEGER

Get the storage limit for large objects.

GETLENGTH(lob_loc)

Function

INTEGER

Get the length of the large object.

INSTR(lob_loc, pattern [,offset [, nth ]])

Function

INTEGER

Get the position of the nth occurrence of a pattern in the large object starting atoffset.

READ(lob_loc, amount IN OUT,offset, buffer OUT)

Procedure

n/a

Read a large object.

SUBSTR(lob_loc [, amount [,offset ]])

Function

RAW,VARCHAR2

Get part of a large object.

TRIM(lob_loc IN OUT, newlen)

Procedure

n/a

Trim a large object to the specified length.

WRITE(lob_loc IN OUT, amount,offset, buffer)

Procedure

n/a

Write data to a large object.

WRITEAPPEND(lob_loc IN OUT,amount, buffer)

Procedure

n/a

Write data from the buffer to the end of a large object.

与Oracle版本的DBMS_LOB执行相比,PolarDB的DBMS_LOB执行是部分执行。PolarDB仅支持上述表中列出的函数和存储过程。

下列表中列出的是可在包中使用的公有变量。

表 2.DBMS LOB Public Variables

Public Variables

Data Type

Value

compress off

INTEGER

0

compress_on

INTEGER

1

deduplicate_off

INTEGER

0

deduplicate_on

INTEGER

4

default_csid

INTEGER

0

default_lang_ctx

INTEGER

0

encrypt_off

INTEGER

0

encrypt_on

INTEGER

1

file_readonly

INTEGER

0

lobmaxsize

INTEGER

1073741823

lob_readonly

INTEGER

0

lob_readwrite

INTEGER

1

no_warning

INTEGER

0

opt_compress

INTEGER

1

opt_deduplicate

INTEGER

4

opt_encrypt

INTEGER

2

warn_inconvertible_char

INTEGER

1

在下面的章节中,如果大对象是BLOB类型,那么它的长度和偏移量是以字节为单位测量的。如果大对象是CLOB类型,那么长度和偏移量是以字符为单位测量的。

APPEND

存储过程APPEND用于将一个大对象附加在另外一个大对象上。这两个大对象必须属于同一类型。APPEND(dest_lob IN OUT { BLOB | CLOB }, src_lob { BLOB | CLOB })表 3.参数

参数名称

描述

dest lob

目标大对象的位置。它必须和参数src_lob代表的大对象的数据类型一样。

src lob

源大对象的位置。它必须和参数dest_lob代表的大对象的数据类型一样。

COMPARE

存储过程COMPARE在给定的长度和偏移范围内对两个大对象进行逐字节的精确比较。进行比较操作的两个大对象必须是相同的数据类型。status INTEGER COMPARE(lob_1 { BLOB | CLOB },

lob_2 { BLOB | CLOB }

[, amount INTEGER [, offset_1 INTEGER [, offset_2 INTEGER ]]])表 4.参数

参数名称

描述

lob_1

在比较操作中第一个大对象的位置,和参数lob_2代表的大对象的数据类型必须相同。

lob_2

在比较操作中第二个大对象的位置,和参数lob_1代表的大对象的数据类型必须相同。

amount

如果大对象的数据类型是BLOB,那么是对两个大对象各自的总字节数进行比较。如果大对象的数据类型是CLOB,则是对两个大对象各自总的字符数进行比较。这个参数的缺省值是一个大对象的最大容量。

offset 1

在比较操作中,第一个大对象中的起始位置。第一个字节/字符的位置是偏移量1,缺省值是1。

offset_2

在比较操作中,第二个大对象中的起始位置。第一个字节/字符的位置是偏移量1,缺省值是1。

status

如果在指定的长度和偏移范围内,两个大对象完全相等,这个参数返回0.如果不相等,则返回非零值。如果参数amount、offset_1或者offset_2小于0,则返回空值。

CONVERTTOBLOB

存储过程CONVERTTOBLOB用于将字符类型数据的大对象转换成二进制类型数据的大对象。CONVERTTOBLOB(dest_lob IN OUT BLOB, src_clob CLOB,

amount INTEGER, dest_offset IN OUT INTEGER,

src_offset IN OUT INTEGER, blob_csid NUMBER,

lang_context IN OUT INTEGER, warning OUT INTEGER)表 5.参数

参数名称

描述

dest lob

表示一个BLOB类型的大对象,使用存储过程CONVERTTOBLOB把CLOB类型大对象的字符数据转换成BLOB类型大对象的二进制数据。

src clob

表示一个CLOB类型的大对象,使用存储过程CONVERTTOBLOB把这个大对象的字符类型数据转换成BLOB类型大对象的二进制数据。

amount

表示在参数src_clob所指定的大对象中要转换的字符数量。

dest_offset IN

BLOB类型的目标大对象中字节的位置,其中写入CLOB类型大对象内容的操作应该从这个位置开始。第一个字节是偏移量1。

dest_offset OUT

在写操作完成后,在BLOB类型大对象中字节的位置。第一个字节为偏移变量1。

src offset IN

在转换操作中, CLOB类型大对象开始的位置。第一个字符为偏移量1。

src_offset OUT

在转换操作完成后,CLOB类型大对象中字符的位置。第一个字符是偏移量1。

blob csid

在BLOB类型大对象中的字符集ID。

langcontext IN

在转换操作中使用的语言环境。通常为这个设置使用缺省值0。

langcontext OUT

转换完成后的语言环境。

warning

如果转换成功,则返回0,如果遇到不可转换的字符,则返回1。

CONVERTTOCLOB

存储过程CONVERTTOCLOB用于将二进制数据的大对象转换成字符型数据的大对象。CONVERTTOCLOB(dest_lob IN OUT CLOB, src_blob BLOB,

amount INTEGER, dest_offset IN OUT INTEGER,

src_offset IN OUT INTEGER, blob_csid NUMBER,

lang_context IN OUT INTEGER, warning OUT INTEGER)表 6.参数

参数名称

描述

dest lob

CLOB类型大对象的位置,将把BLOB类型大对象的二进制类型数据转换成CLOB类型大对象的字符类型数据。

src_blob

BLOB类型大对象的位置,将把它的二进制数据转换成目标大对象的字符类型数据。

amount

在参数src_blob指定的大对象中要进行转换的字节数量。

dest_offset IN

在CLOB类型大对象中的位置,写入BLOB类型大对象内容的操作应该从这个位置开始。第一个字符是偏移量1。

dest_offset OUT

在写操作完成后在CLOB类型大对象中字符的位置。第一个字符是偏移量1。

src offset IN

在进行转换操作时BLOB类型大对象中字节的开始位置。第一个字节是偏移量1。

src_offset OUT

在转换操作完成后,在BLOB类型大对象中字节的位置。第一个字节是偏移量1。

blob csid

CLOB类型大对象的字符集ID。

CLOB. langcontext IN

转换操作时使用语言环境。通常对于这个设置,使用缺省值0。

langcontext OUT

转换操作完成后的语言环境。

warning

如果转换成功,返回0,如果遇到不可转换的字符与,则返回1。

COPY

存储过程COPY用于将一个大对象复制为另一个大对象。源和目标大对象必须具有相同的数据类型。COPY(dest_lob IN OUT { BLOB | CLOB }, src_lob

{ BLOB | CLOB },

amount INTEGER

[, dest_offset INTEGER [, src_offset INTEGER ]])表 7.参数

参数名称

描述

dest lob

在大对象复制操作中目标大对象的位置。它和参数src_lob代表的大对象要具有相同的数据类型。

src lob

在大对象复制操作中的源大对象的位置。它和参数dest_lob代表大对象的数据类型必须一样。

amount

在参数src_lob代表的大对象中拷贝的字节或字符数。

dest offset

在目标大对象中的位置,是写入源大对象内容操作时的开始位置。第一个位置是偏移量1. 缺省值是1。

src offset

在源大对象中的位置,是将源大对象拷贝到目标大对象操作时的开始位置。第一个位置是偏移量1。缺省值是1。

ERASE

存储过程ERASE用于清除一个大对象的部分数据。清除一个大对象的部分内容就是分别用0字节过滤器替代BLOB类型大对象的部分内容,用空格替代CLOB类型大对象的部分内容。操作结束后而大对象的实际大小不会改变。ERASE(lob_loc IN OUT { BLOB | CLOB }, amount IN OUT INTEGER

[, offset INTEGER ])表 8.参数

参数名称

描述

lob loc

要进行清除操作的大对象。

amount IN

在大对象中要清除的字节或字符数。

amount OUT

实际被清除的字节或字符数量。如果在参数amount指定的字节或字符数被清除前已经达到了大对象的末尾,那么这个值会比输入值小一些。

offset

对大对象进行清除操作时开始的位置。第一个字节或字符的位置是1。缺省值是1。

GET_STORAGE_LIMIT

函数GET_STORAGE_LIMIT返回大对象可允许使用的最大存储空间。size INTEGER GET_STORAGE_LIMIT(lob_loc BLOB)

size INTEGER GET_STORAGE_LIMIT(lob_loc CLOB)表 9.参数

参数名称

描述

size

在数据库中一个大对象可允许使用的最大存储空间。

lob loc

这个参数只是为了与Oracle兼容而提供,在实际运行中可以忽略。

GETLENGTH

函数GETLENGTH返回一个大对象的长度。 amount INTEGER GETLENGTH(lob_loc BLOB)

amount INTEGER GETLENGTH(lob_loc CLOB)

表 10.参数

参数名称

描述

lob loc

大对象的位置,使用函数GETLENGTH可以获取这个对象的长度。

amount

大对象的长度。对于BLOB类型大对象来说,是以字节为单位,而对于CLOB类型大对象来说,是以字符为单位的。

INSTR

函数INSTR返回在大对象中指定模式第n次出现时的位置。position INTEGER INSTR(lob_loc { BLOB | CLOB },

pattern { RAW | VARCHAR2 } [, offset INTEGER [, nth INTEGER ]])表 11.参数

参数名称

描述

lob loc

大对象的位置,将使用函数INSTR在这个大对象中搜索指定的模式。

pattern

以字节为单位或以字符为单位的模式,用于匹配大对象中的内容。如果lob_loc代表BLOB类型大对象,那么模式必须是RAW类型。如果lob_loc代表CLOB类型大对象,那么模式必须是VARCHAR2类型。

offset

在参数lob_loc代表的大对象中搜索模式时的开始位置。第一个字节或字符是位置1.缺省值是1。

nth

从由给定的偏移量指定起始位置开始搜索第n次出现指定模式。缺省值是1。

position

在大对象中的第n次出现模式的位置,搜索的起始位置是由参数offset指定的。

READ

存储过程READ用于从大对象中读取部分内容,然后把这部分内容放到到缓冲区中。 READ(lob_loc { BLOB | CLOB }, amount IN OUT BINARY_INTEGER,

offset INTEGER, buffer OUT { RAW | VARCHAR2 })

表 12.参数

参数名称

描述

lob loc

指示进行读操作的大对象的位置。

amount IN

读取的字节/字符的总数。

amount OUT

实际读取的字节或字符的总数。如果这里没有更多数据可供读取,那么参数amount返回0,并且产生异常DATA_NOT_FOUND。

offset

在大对象中开始进行读操作时的位置。第一个字节或字符的位置是1。

buffer

接收大对象内容的变量。如果参数lob_loc是BLOB类型大对象,那么buffer必须是RAW类型。而如果lob_loc是一个CLOB类型大对象,那么参数buffer则必须是VARCHAR2类型。

SUBSTR

函数SUBSTR用于返回大对象的部分内容。 data { RAW | VARCHAR2 } SUBSTR(lob_loc { BLOB | CLOB }

[, amount INTEGER [, offset INTEGER ]])

表 13.参数

参数名称

描述

lob loc

用于指示进行读操作的大对象的位置。

amount

所返回的字节/字符的数量。缺省值是32,767。

offset

开始返回数据时在大对象中的位置。第一个字节/字符的位置是1。缺省值是1。

data

这个参数用于返回部分被读取的大对象内容。如果参数lob_loc是BLOB类型大对象,那么buffer必须是RAW类型。而如果参数lob_loc是一个CLOB类型大对象,那么buffer则必须是VARCHAR2类型。

TRIM

存储过程TRIM用于将一个大对象截断到指定长度。TRIM(lob_loc IN OUT { BLOB | CLOB }, newlen INTEGER)表 14.参数

参数名称

描述

lob loc

指示被截断长度的大对象的位置。

newlen

被截断长度的大对象的字节或字符总数。

WRITE

存储过程WRITE用于将数据写到一个大对象中。任何大对象中从指定的偏移量开始,在指定长度范围内的数据都会被缓冲区中的数据覆盖。WRITE(lob_loc IN OUT { BLOB | CLOB },

amount BINARY_INTEGER,

offset INTEGER, buffer { RAW | VARCHAR2 })表 15.参数

参数名称

描述

lob loc

用于指示进行写操作的大对象的位置。

amount

在缓冲区中字节或字符的数量,这些字节或字符将被写到大对象中。

offset

从大对象的开始位置算起,以字节/字符为单位的偏移量(起始值是1),写操作从这个偏移量开始执行。

buffer

包含要写到大对象中的数据。如果参数lob_loc是BLOB类型的大对象,那么参数buffer必须是RAW类型。而如果参数lob_loc是一个CLOB类型的大对象,那么buffer则必须是VARCHAR2类型。

WRITEAPPEND

存储过程WRITEAPPEND用于将数据添加到一个大对象的末尾。WRITEAPPEND(lob_loc IN OUT { BLOB | CLOB },

amount BINARY_INTEGER, buffer { RAW | VARCHAR2 })表 16.参数

参数名称

描述

lob loc

指示大对象的位置,将会把数据添加到这个大对象的末尾。

amount

缓冲区中字节或字符的数量,这些字节或字符将添加到大对象的尾部。

buffer

要添加到大对象中数据。如果参数lob_loc所代表的是BLOB类型的大对象,那么参数buffer必须是RAW类型。而如果参数lob_loc所代表的是一个CLOB类型,那么参数buffer则必须是VARCHAR2类型。

oracle dbms_lob trim,DBMS_LOB相关推荐

  1. oracle trim没用,Oracle中Trim函数的使用方法

    TRIM函数最简单的功能就是使用它来去除字符串的行首和行尾的空格,这个功能也是大家使用频率最高的一种.然而在Oracle中TRIM函数其实是具有删除"任意指定"字符的功能,下面就进 ...

  2. Oracle之trim( )、ltrim( )、rtrim( )三个函数

    Oracle之trim( ).ltrim( ).rtrim( )三个函数的用法及陷阱 一.去除字符串前后空格(基本用法) trim(string):去除指定字符串string的左右空格,当然,stri ...

  3. oracle中trim,ltrim,rtrim函数用法(简单易懂)

    oracle中trim,ltrim,rtrim函数用法 用法一.去空格 函数 作用 TRIM TRIM()去除指定字符串的前后空格 LTRIM LTRIM()去除指定字符串的前面空格 RTRIM RT ...

  4. ORACLE中trim函数、ltrim函数、rtrim函数的使用介绍

    ORACLE中trim函数.ltrim函数.rtrim函数的使用介绍 前言 一开始使用oracle时,遇见了上面的三个函数,虽然以前在mysql中也见过,但是在oracle中有很大的不同,因此做了以下 ...

  5. oracle dbms_lob trim,oracle中的trim函数使用介绍

    Oracle TRIM函数是很常见的函数,下面对Oracle TRIM函数的语法作了详尽的阐述说明,希望可以让您对Oracle TRIM函数有更深的认识. 如果提到Oracle TRIM函数,最简单的 ...

  6. oracle中trim函数的使用方法,trim()函数的用法

    在oracle中,trim()函数的用法有,leading 开头字符,trailing 结尾字符,both 开头和结尾字符,如下: trim(leading || trailing || both ' ...

  7. oracle的trim函数使用时不生效问题

    数据库里的数据会有空格,用了trim函数,发现后边的空格并没有被去掉,还存在 用oracle的内置函数to_single_byte(...)来先将非法的空格进行转换成正常的可以trim的空格 ttri ...

  8. Oracle之trim( )、ltrim( )、rtrim( )三个函数的用法及陷阱

    最近整理一份oracle常用函数清单的时候发现其经常用来去除字符串空格的三个函数,也就是trim().ltrim().rtrim(),看起来简简单单,其实大有玄机.以下见解来自网络,但内容经由博主撰写 ...

  9. oracle中trim函数的用法

    1.基础用法 a) trim(string); --去除字符串首尾的空格 b) rtrim(string); --去除字符串右侧空格 c) ltrim(string); --去除字符串左侧空格 2.进 ...

  10. Oracle之trim,ltrim,rtrim三个函数的用法

    基础用法: 去除指定字符串前后的空格 select trim(' hello caicai ')trim from dual;--当不加别名时,显示字符串右边还是有空格. 2.去除指定字符串左右的空格 ...

最新文章

  1. 匹配内容主要分为三部分,负载电容的匹配,驱动功率的调试,负性阻抗的测量。...
  2. R710后台更新网卡驱动
  3. CodeFirst 的编程方式
  4. nik collection滤镜
  5. http --- 缓存
  6. 伪命题:新人在职场应该锋芒毕露还是韬光养晦呢?
  7. 用多媒体库 Bass.dll 播放 mp3 [15] - 设置与获取播放速度
  8. 她要到另外一座城市去工作
  9. Biopython SeqIO 读取序列文件,读取信息,写入序列
  10. 算法-无向图(深度优先搜索和广度优先搜索)
  11. 华云数字实名认证图片_“云联盟华云数字”是云数贸传销组织衍生平台!不要被骗了...
  12. MES系统业务需求收集及整理
  13. 文件后缀bat是什么?(批处理文件)
  14. 使用pyecharts绘制各个3D图表代码示例整理和分享
  15. 点线特征融合求取相机位姿
  16. 网易易盾-滑块-cb参数
  17. 「应用架构」六边型架构:三个原则和一个实现示例
  18. Mysql统计每个小时或半小时数据的数量
  19. 【方法】科大讯飞在线语音合成API使用-文字转语音音频
  20. 循环神经网络(RNN)预测股票价格,附带例子和完整代码

热门文章

  1. 移动互联网创业者遭遇巨头模仿蚕食
  2. linux添加jetdirect协议,Linux系统中如何打印
  3. 改进YOLOv5!GSConv+Slim Neck进一步提升YOLOv5性能!
  4. sqlserver Month()函数取日期不足两位的加 0(转载)
  5. 【英语语法入门】第43讲 假设(02)与现在事实相反的虚拟语气
  6. h5耳机线弯曲了怎么办_最烦人的耳机线,总是像麻花一样缠绕在一起,这是什么个道理...
  7. Tree Booster 的参数
  8. Visual SourceSafe 2005介绍
  9. 如何用几百美元撬动数亿美元的大生意?德比软件做到了
  10. 【NBA之路】启蒙—to—詹皇—to—保罗乔治