Sek*_*har 3 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');
Run Code Online (Sandbox Code Playgroud)
我希望得到这两个系列的区别,对于上面的Ex:'def','abc'
请建议任何简单的方法来做到这一点?
谢谢...
这些是简单类型,因此您可以使用PL/SQL的集合比较运算符.在您的情况下,您想要使用MULTISET EXCEPT(与SQL MINUS运算符的工作方式相同).给定第三个嵌套表,您将编写如下代码:
nt3 := nt1 multiset except nt2;
Run Code Online (Sandbox Code Playgroud)
了解更多.
"当数组中没有重复的元素时,这样可以正常工作......有没有其他方法可以删除nt1中所有出现的'123'?"
是的,使用multiset except distinct.
有很多收集运营商.正如我们所期望的那样,它们包含在PL/SQL文档中. 在这里找到它.