从表/记录中检索值

时间:2013-03-18 19:30:19

标签: oracle stored-procedures plsql oracle11g user-defined-types

我创建了一个自定义记录类型,说record_object,其值为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).column3Table1中的值进行比较。这张桌子不是很大,所以我想创造一些东西

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).column3record_table1.column2进行比较。我不想使用2个嵌套循环。有没有像我可以在Table1上实现的哈希表的方法,当我要求查看其中是否存在record_object(i).column3时,它会返回该特定的行/索引?

P.S: 请忽略我的语法错误,我在这里发帖时写了我的sql。

1 个答案:

答案 0 :(得分:1)

您可以修改查询以返回有序的字符串集。两个有序数组的比较将是简单而快速的。