コンマで区切られた電子メール文字列を、カンマで区切られた個々の電子メール ID に分割しようとしていますが、各電子メール ID は一重引用符で囲まれています。
私の入力は 'one@gmail.com,two@gamil.com,three@gmail.com,four@gmail.com'
私の出力は次のようになります。 'one@gmail.com','two@gamil.com','three@gmail.com','four@gmail.com'
上記の出力文字列を oracle クエリで使用します。条件は次のとおりです...
Where EmailId's in ( 'one@gmail.com','two@gamil.com','three@gmail.com','four@gmail.com');
これを達成するために次のコードを使用しています
WHERE EMAIL IN
(REGEXP_SUBSTR('one@gmail.com,two@gamil.com,three@gmail.com,four@gmail.com' ,'[^,]+', 1, LEVEL))
CONNECT BY LEVEL <= LENGTH('one@gmail.com,two@gamil.com,three@gmail.com,four@gmail.com' ) - LENGTH(REPLACE('one@gmail.com,two@gamil.com,three@gmail.com,four@gmail.com' , ',', '')) +1;
しかし、上記のクエリは 16 レコードしか返すのに 60 秒かかりません。誰でもこれに最適なアプローチを提案できますか...