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

SELECTINでOracleパラメータを使用する際の問題

    値のセットを渡すには、Oracleのテーブルまたは配列タイプを使用する必要があります。

    最初に、テーブルタイプを作成します(例:NUMBER用):

    CREATE TYPE number_table AS TABLE OF NUMBER; 
    

    クエリのパラメータを作成するときは、それを連想PL/SQL配列として宣言します。

    OracleParameter param1 = new OracleParameter(); 
    param1.OracleDbType = OracleDbType.Int32; 
    param1.CollectionType = OracleCollectionType.PLSQLAssociativeArray; 
    

    次に、いくつかの値を割り当てます。

    param1 = new int[] { 3857, 3858, 3863, 3285 }; 
    

    そして、クエリにはキャストが必要です:

    SELECT * FROM tablename a 
    where a.flokkurid in (TABLE(CAST(:manyNumbers AS number_table)))
    order by sjodategund, rodun 
    


    1. oracle plsql varchar2変数にサイズが必要なのに、パラメータには必要ないのはなぜですか。

    2. to_number()関数がPostgreSQLでどのように機能するか

    3. PerconaXtraDBクラスターのProxySQLを使用した負荷分散

    4. 文字列がJSONであるかどうかをテストする方法は?