在存储过程中使用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;
答案 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。