0

コンマ区切りのパラメーター値を Oracle のストアド プロシージャに送信しています。パラメータはWHERE句に行きます。私は次のようなことを達成しようとしています:

valuestring = "ABC123, ABC456, ABC789"



SELECT * 
  FROM Tbl1 
  WHERE column IN (valuestring)

問題は、select ステートメントが値の間のコンマを認識しないことです。単一の文字列として受け取るため、ストアド プロシージャが実行されたときに値が返されません。

どんな助けでも大歓迎です。

4

2 に答える 2

0

以下の方法のように、値の文字列を渡すことができます。これにより、カンマ区切りの文字列全体が異なる行に変換されるため、必要な場所で簡単に使用できます。

 SELECT trim(x.column_value.extract('e/text()')) COLUMNS
 from t t, table (xmlsequence(xmltype('<e><e>' || replace(valuestring,':','</e><e>')||  
 '</e></e>').extract('e/e'))) x   );
于 2013-07-27T22:18:34.837 に答える