次のようなサブネットワークを持つテーブルがあります
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の機能について知っています。しかし、コレクションをこのクエリに渡すことはできません。なぜなら、事前にコレクションを宣言して入力する必要があるためです。この方法では、一時テーブルを作成するのと同じです。