sql >> データベース >  >> RDS >> Oracle

plsqlストアドプロシージャのカンマ区切りパラメータ

    このようには機能しないのではないかと思います:

    SELECT * from myTable where name in (inputStr);
    

    @Bob Jarvisの回答のように、動的SQLを使用するか、次のようにすることができます。

    SELECT * FROM myTable WHERE REGEXP_LIKE(name, '^(' || REPLACE(inputStr, ',', '|') || ')$');
    

    後者の問題点は、Oracleでは、正規表現の長さが最大512バイトになる可能性があることです。つまり、inputStr 508バイトに制限されます(アンカーとグループ化に4バイトを追加するため)。



    1. クイックヒント–トランザクションログからの低速復元を高速化

    2. CentOS7またはRHEL7からMariaDBまたはMySQLを完全に削除します

    3. MySQLデータベースをC#WinFormアプリケーションに接続する方法は?

    4. GroupyBySQLステートメントにない列を選択して並べ替える方法-Oracle