INSTR 函数从指定的偏移量开始,返回 LOB 模式中第 n 次发生匹配的位置。

语法

  1. DBMS_LOB.INSTR (
  2. lob_loc IN BLOB,
  3. pattern IN RAW,
  4. offset IN INTEGER := 1,
  5. nth IN INTEGER := 1)
  6. RETURN INTEGER;
  7. DBMS_LOB.INSTR (
  8. lob_loc IN CLOB CHARACTER SET ANY_CS,
  9. pattern IN VARCHAR2 CHARACTER SET ANY_CS,
  10. offset IN INTEGER := 1,
  11. nth IN INTEGER := 1)
  12. RETURN INTEGER;

参数解释

参数

解释

lob_loc

要检查的 LOB 的定位器。更多信息请参见 DBMS_LOB 使用说明

pattern

要测试的模式。该模式是一组用于 BLOBRAW字节,以及一个用于 CLOB 的字符串(VARCHAR)。该模式的最大容量为 16383 字节。

offset

模式匹配开始的字节(BLOB)或字符(CLOB)的绝对偏移量(原点为 1)。

nth

发生的次数,从 1 开始计算。

返回值

返回值

描述

INTEGER

匹配模式开始的偏移量,以字节或字符为单位,如果找不到模式则返回 0。

NULL

可能为以下情况之一:

  • 任何一个或多个 IN 参数为 NULLINVALID

  • offset 小于 1 或 offset 大于 LOBMAXSIZE

  • nth 小于 1

  • nth 大于 LOBMAXSIZE

使用说明

VARCHAR 缓冲区的形式(pattern 参数)必须与 CLOB 参数的形式匹配。如果输入 LOB 参数的类型为CLOB,则缓冲区必须包含 CHAR 数据。

接受 RAWVARCHAR 参数进行模式匹配的操作(例如 INSTR),在模式参数或子字符串中不支持正则表达式或特殊的匹配字符(例如 SQL LIKE)。