2013-03-18 115 views
0

我创建了一个自定义记录类型,说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; 

我想在Table1的值进行比较record_object(i).column3这个记录被填充。这个表并不是那么庞大,所以我想创造一些东西

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个嵌套循环。有没有像hashtable那样的方法,我可以在Table1上实现,当我询问它是否存在record_object(i).column3时,它会返回特定的行/索引?

P.S: 请忽略我的语法错误,我在写这篇文章时写上我的sql。

+2

你为什么要在PL/SQL而不是SQL中执行此操作?显然,“比较”可以表示任意数量的操作,但JOIN可能会比您想要的任何方式更快。 – APC 2013-03-18 20:06:56

回答

1

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