ORA-06502:PL/SQL:数字或值错误 - INSTR 函数预言机



在存储过程中使用 INSTR 函数。INSTR(a,b) 其中 a 非常巨大。在查找 b 在 中出现的同时,它会导致一个大于整数的大值。所以我收到以下错误,

"ORA-06502:PL/SQL:数字或值错误"。

有人可以帮助我解决这个问题,或者如果我可以在 oracle 中使用其他一些类似的功能,请写在这里。

create or replace PROCEDURE "sample" ( dest_schema IN VARCHAR2 )
AS
digit NUMBER(20);
parentList CLOB;
product NUMBER(38);
digit := INSTR(parentList,product); --> issue comes here
END;
您需要

使用 DBMS_LOB.INSTR 来搜索 clob。有关文档,请参阅此处。

DBMS_LOB.INSTR (
   lob_loc    IN   CLOB      CHARACTER SET ANY_CS,
   pattern    IN   VARCHAR2  CHARACTER SET lob_loc%CHARSET,
   offset     IN   INTEGER := 1,
   nth        IN   INTEGER := 1)

在您发布的代码中product尚未分配值,因此在调用INSTR时为 NULL。

最新更新