4

次のようなサブネットワークを持つテーブルがあります

cidr | ip

そして、所属するIPのリストでサブネットワークを選択したいです。postgres では、次のように実行できます。

select 
    ips.ip, net.uid, net.cidr 
from 
    TBL_SID_SUBNETWORK net, 
    (select unnest(ARRAY[1,2,3]) ip) ips 
where 
    cast (((2^net.cidr) - 1) as bigint)<<(32 - net.cidr) & ips.ip =  net.ipaddress

postgres では、配列を渡してテーブルとして使用できます。

select ips.ip from
(select unnest(ARRAY[1,2,3]) ip) ips

|ip|
 1
 2
 3

Oracleでそのようなことをすることは可能ですか? 1つのクエリで?DBを間接的に使用し、トランザクションはアプリケーション構成によって管理されるため、追加のテーブルを作成、入力、および削除したくありません。

TABLE(collection)私は、私が望むものと同じだけのOracleの機能について知っています。しかし、コレクションをこのクエリに渡すことはできません。なぜなら、事前にコレクションを宣言して入力する必要があるためです。この方法では、一時テーブルを作成するのと同じです。

4

1 に答える 1