Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ORA-06502:PL/SQL:数字或值错误-指令函数Oracle_Oracle_Stored Procedures - Fatal编程技术网

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

ORA-06502:PL/SQL:数字或值错误-指令函数Oracle,oracle,stored-procedures,Oracle,Stored Procedures,在存储过程中使用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

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

您需要使用
DBMS\u 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
时为空。

显示完整的代码您是如何确定错误是由值太大引起的?返回的值是
NUMBER
datatype,那么这与“integer”有什么关系呢?
NUMBER
的最大值约为10^38-我怀疑您的字符串是否有那么长。您进行了编辑以添加代码,但是否确实发布了正确的代码?我相信这甚至不会编译您缺少的
BEGIN
。这确实是完整的代码吗?是的,我的父列表是长字符串。但我不确定错误是因为返回值还是其他原因。除了返回值之外,我看不出出现此错误的任何原因