3

BIP で以下のクエリを使用していますが、「無効な番号」エラーがスローされます。Toad でも同じクエリが正常に機能します。ORA-01722: 無効な番号が表示される理由を教えてください。パラメータが 1 つしか使用されていない場合は正常に機能し、複数のオプションを選択した場合にのみ、このエラーが発生します。

パラメータref_stdにStringデータ型を使用しています

それぞれに含まれる値の要点は次のとおりです

multilist01 - 「,100,200,300,400」などの csv 値が含まれています。

: ref_std - EN 60439-1:1999、EN 60439-3:1991 のようなパラメーター (複数選択) になります。


select * from
( 
select cert.multilist01
from
some_table 
) xx
join 
(

select id as input from some_table where item_number in 
(
select regexp_substr(:ref_std,'[^,]+', 1, level) ID
from dual
connect by regexp_substr(:ref_std,'[^,]+', 1, level) is not null
) 


)yy on xx.multilist01 like '%'||yy.input||'%'
4

1 に答える 1

0

最初: ref_std は数値ではないため、Item_number は文字列でなければなりません。または、数値を抽出するために '[^,]+' を変更する必要があります。cert.multilist01 が 100 200 300 の行である場合、これは数値であり、文字列である「yy」と「結合」することはできません。cert.multilist01 を文字列 (some_table の列) に変換するか、正規表現を変更して ref_std の数値のみを抽出する必要があります。

于 2013-01-22T21:56:38.317 に答える