2017-01-24 12 views
-1

ストアド・プロシージャでのINSTRファンクションの使用。 aが非常に大きいINSTR(a、b)。 aでbの出現を見つけると、整数よりも大きな値が得られます。したがって、私は以下のエラーが発生しています。ORA-06502:PL/SQL:数値または値のエラー - INSTRファンクションOracle

"ORA-06502:PL/SQL:数値または値のエラー"。

誰かがこの問題を解決するのに役立つことがありますか、あるいは私がオラクルで他の同様の機能を使用できる場合は、ここに書き込んでください。

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

値が大きすぎることによってエラーが発生したとはどのように判断しましたか?返される値は 'NUMBER'データ型なので、これは"整数 "と何が関係していますか?そして、 'NUMBER'の最大値は10^38のオーダーです - あなたは文字列が長いことは疑います。 – mathguy

+0

コードを編集するために編集しましたが、正しいコードを投稿したことはありますか?私はこれもコンパイルされないと信じています – Aleksej

答えて

1

クローブを検索するには、DBMS_LOB.INSTRを使用する必要があります。詳細については、hereを参照してください。あなたがproduct投稿をコードで

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) 
0

値を割り当て、そしてINSTRが呼び出されたときにこれNULLであるされていません。

関連する問題