0

record_object値を持つカスタムレコードタイプsayを作成しましたcolumn3。このレコードは次のように入力されます

OPEN cur_record FOR query;
BEGIN
  LOOP
    FETCH cur_record BULK COLLECT INTO record_object;
    FOR i IN 1..record_object.count;
    END LOOP;
    EXIT WHEN cur_record%notfound;
  END LOOP;
END;

record_object(i).column3の値と比較したいTable1。このテーブルはそれほど大きくないので、何かを作成しようと考えていました

TYPE RTable1 IS RECORD
(
  column1 varchar2(10),
  column2 varchar2(10)
);

Type TTable1 IS TABLE OF RTable1 INDEX BY BINARY_INTEGER;
record_table1 TTable1;

このレコードは、クエリを介してフェッチされます。record_object(i).column3ここで問題は、と比較したいということですrecord_table1.column2。2つのネストされたループを使用したくありません。Table1その中に存在するかどうかを確認するように要求したときに、その上に実装できるハッシュテーブルのような方法はありrecord_object(i).column3ますか?それはその特定の行/インデックスを返しますか?

PS:構文エラーは無視してください。ここに投稿するときにSQLを記述します。

4

1 に答える 1

1

クエリを変更して、順序付けられた文字列のセットを返すことができます。2つの順序付けられた配列の比較は、簡単で高速です。

于 2013-03-18T19:39:59.257 に答える