ORA-06502:PL / SQL:数字或值错误 - INSTR函数Oracle

时间:2017-01-24 22:05:05

标签: oracle stored-procedures

在存储过程中使用INSTR函数。 INSTR(a,b)其中a非常巨大。 在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;

2 个答案:

答案 0 :(得分:1)

您需要使用DBMS_LOB.INSTR来搜索clob。有关文档,请参阅here

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)

答案 1 :(得分:1)

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