Arrays 两个嵌套表集合之间的plsql差异
我有两个嵌套表类型的PLSQL数组:Arrays 两个嵌套表集合之间的plsql差异,arrays,oracle,collections,plsql,nested-table,Arrays,Oracle,Collections,Plsql,Nested Table,我有两个嵌套表类型的PLSQL数组: TYPE nested_typ IS TABLE OF VARCHAR2(21); nt1 nested_typ := nested_typ('abc','def','123'); nt2 nested_typ := nested_typ('123'); 我想知道这两个系列的不同之处,例如:“def”,“abc” 请提出任何简单的方法来做到这一点 谢谢…这些类型很简单,所以您可以使用PL/SQL的集合比较运算符。在您的情况下,您希望使用多集,但除外(其工
TYPE nested_typ IS TABLE OF VARCHAR2(21);
nt1 nested_typ := nested_typ('abc','def','123');
nt2 nested_typ := nested_typ('123');
我想知道这两个系列的不同之处,例如:“def”,“abc”
请提出任何简单的方法来做到这一点
谢谢…这些类型很简单,所以您可以使用PL/SQL的集合比较运算符。在您的情况下,您希望使用
多集,但
除外(其工作方式与SQL减号
运算符相同)。给定第三个嵌套表,您可以编写如下代码:
nt3 := nt1 multiset except nt2;
“当数组中没有重复的元素时,这种方法可以正常工作。。。 是否有其他方法可以删除中所有出现的“123” nt1?” 是,使用
multiset,但不使用distinct
有很多收集操作符。正如我们所期望的,PL/SQL文档中包含了它们 基本上,您希望对嵌套表使用减号功能。 在10g中,有一个新功能称为MULTISET,除了。如果要将减号的输出存储在变量中,请执行以下步骤
declare var1 <nested table type>
看看这个
Declare
TYPE nested_typ IS TABLE OF VARCHAR2(21);
nt1 nested_typ := nested_typ('abc','def','123');
nt2 nested_typ := nested_typ('123');
nt3 nested_typ;
Begin
nt3 := nt1 multiset except nt2;
dbms_output.put_line(nt3(1)||' '||nt3(2));
end;
希望这有帮助 当数组中没有重复的元素时,这种方法可以正常工作。假设以下数据:nt1嵌套类型:=嵌套类型('abc','123','def','123');nt2嵌套的类型:=嵌套的类型('123');,那么nt3:=nt1多集,nt2除外;将导致'abc'、'def'、'123',是否有其他方法可以删除nt1中出现的所有'123'?
Declare
TYPE nested_typ IS TABLE OF VARCHAR2(21);
nt1 nested_typ := nested_typ('abc','def','123');
nt2 nested_typ := nested_typ('123');
nt3 nested_typ;
Begin
nt3 := nt1 multiset except nt2;
dbms_output.put_line(nt3(1)||' '||nt3(2));
end;