0
私はテーブルを持っているので、このテーブルを使ってネストされたforループを実装する必要があります。したがって、両方のループで同じテーブルが使用されます。外部ループは、テーブルの最初のインデックス(プライマリキー)を開始し、最後のインデックスに移動します。内部ループは外側ループが残っているところから始まります。最後のインデックスがoracleでチェックインされた場所からforループを反復する方法は?
私のサンプルコード:
declare
res varchar2(5);--TRUE or FALSE
BEGIN
FOR aRow IN (SELECT MI_PRINX, geoloc, ROWID FROM ORAHAN)
LOOP
FOR bRow IN (SELECT MI_PRINX, geoloc, ROWID FROM ORAHAN)
LOOP
select SDO_GEOM.RELATE(aRow.geoloc,'anyinteract', bRow.Geoloc,0.02) into res from dual;
if (res='TRUE')
THEN
Insert INTO ORAHANCROSSES values (aRow.MI_PRINX,bRow.MI_PRINX);
END IF;
END LOOP;
END LOOP;
END ;
が依存だと思います。 2つ目の行のMI_PRINXが> aRow.MI_PRINXより大きいすべての行を選択するだけです。 MI_PRINXが数字または文字列の場合は簡単です。また、それを最適化して、自身への結合を行い、1つのカーソルを取得することもできます。 – LoztInSpace
MI_PRINXは数字(10)です。私はカーソルを検索していただきありがとうございます。 –