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

コンマ区切りの数値をストアド プロシージャの IN 句に渡す

    あなたがやっていることの最終結果はこれです:

    select * from tableName where LOCATION_ID IN ('1,2,3');
    

    必要なものは次のとおりです:

    select * from tableName where LOCATION_ID IN (1,2,3);
    

    したがって、これを使用できます:

    select * from tableName where LOCATION_ID in (
        select regexp_substr(P_LOCATIONS,'[^,]+{1}',1,level)
        from dual connect by level <= length(regexp_replace(P_LOCATIONS,'[^,]*')) + 1
    );
    



    1. mysqlクエリでロックされたテーブルを取得する

    2. DBCCCheckDB機能の概要

    3. PDOを使用した単一行、単一列のフェッチ

    4. OracleのALL_TAB_COLUMNSテーブルのBIN$...テーブルとは何ですか?