集合方法+exists()+count()+limit()+extend()+trim()+first()+last()+prior()+next()+delete()
2017-05-23 11:08
295 查看
集合方法
1是用于操作集合变量的内置函数或过程
2集合方法只能在PL/SQL中使用,不能再SQL语句中使用
3集合方法extend和trim只适用于嵌套表和varray,不适用与索引表
4exists(),count(),limit(),first(),next(),prior(),last()是函数,extend(),trim(),delete()是过程,都是集合方法
语法
collection_name.method_name{(parameters)}
exists()
确定集合元素释放存在,存在返回true,否则返回false
案例
declare
type sname_table_type is table of student.sname%type;–定义嵌套表类型
sname_table sname_table_type;
begin
if sname_table.exists(1) then
sname_table(1):=’aa’;
else
dbms_output.put_line(‘集合元素必须要初始化’);
end if;
end;
count()
返回当前集合变量中元素的总个数
举例
declare
type sname_table_type is table of student.sname%type
index by binary_integer;–定义索引表
sname_table sname_table_type;
begin
sname_table(1):=’aa’;
sname_table(2):=’bb’;
sname_table(3):=’cc’;
sname_table(4):=’dd’;
dbms_output.put_line(‘元素个数’||sname_table.count);
end;
limit()
1返回集合元素的最大个数
2因为嵌套表和索引表的元素个数没有限制,所以调用该方法返回null
3对于varray来说,该方法返回varray所允许的最大元素个数
declare
type sname_table_type is varray(20) of student.sname%type;
sname_table sname_table_type;
begin
sname_table:=sname_table_type(‘lia’,’lilib’);
select sname into sname_table(1) from student where sno=’s001’;
select sname into sname_table(2) from student where sno=’s002’;
dbms_output.put_line(sname_table(1)||’———’||sname_table(2));
dbms_output.put_line(‘集合元素最大个数:’||sname_table.limit);
end;
举例
extend()
1用于扩展集合变量的尺寸,并未集合添加元素
2该方法只适用于嵌套表和索引表。
3extend的调用格式
1)extend:用于为集合变量添加一个null元素
2)extend(n):为集合变量添加n个null元素
3)extend(n,i)为集合添加n个null元素,元素值与第i个元素相同
举例
declare
type sname_table_type is varray(20) of student.sname%type;–可变数组
sname_table sname_table_type;
begin
sname_table:=sname_table_type(‘lia’,’lilib’);
sname_table.extend(5,2);–为集合添加2个元素,元素值与第二个元素相同
dbms_output.put_line(sname_table(1));
dbms_output.put_line(sname_table(2));
dbms_output.put_line(sname_table(3));
dbms_output.put_line(sname_table(4));
end;
trim()
1方法适用于从集合尾部删除元素
2trim的调用格式
1)trim:用于从集合尾部删除一个元素
2)trim(n):用于从集合尾部删除n个元素
举例
declare
type sname_table_type is varray(20) of student.sname%type;–可变数组
sname_table sname_table_type;
begin
sname_table:=sname_table_type(‘lia’,’lilib’,’lilic’,’lilid’);
dbms_output.put_line(‘集合元素个数:’||sname_table.count);
sname_table.trim(2);–为集合删除尾部2个元素,
dbms_output.put_line(‘集合元素个数:’||sname_table.count);
end;
first()
返回集合变量第一个元素的下标
last()
返回集合变量最后一个元素的下标
prior()
返回当前集合变量前一个元素的下标
next()
返回当前集合变量下一个元素的下标
举例
declare
type sname_table_type is table of student.sname%type
index by binary_integer;–定义索引表
sname_table sname_table_type;
begin
sname_table(1):=’aa’;
sname_table(2):=’bb’;
sname_table(3):=’cc’;
sname_table(4):=’dd’;
dbms_output.put_line(‘第一个元素’||sname_table.first);
dbms_output.put_line(‘最后一个元素’||sname_table.last);
dbms_output.put_line(‘第二个元素前一个元素’||sname_table.prior(2));
dbms_output.put_line(‘第二个元素后一个元素’||sname_table.next(2));
end;
delete()
1该方法只适用于嵌套表和索引表,不适用于varray
2delete的调用格式
1)delete:删除集合变量的所有元素
2)delete(n):删除集合变量的第n个元素
3)delete(n,m):删除集合变量从n到m之间的所有元素
案例
declare
type sname_table_type is table of student.sname%type
index by binary_integer;–定义索引表
sname_table sname_table_type;
begin
sname_table(1):=’aa’;
sname_table(2):=’bb’;
sname_table(3):=’cc’;
sname_table(4):=’dd’;
sname_table.DELETE(2,4);
dbms_output.put_line(‘集合元素个数:’||sname_table.count);
end;
1是用于操作集合变量的内置函数或过程
2集合方法只能在PL/SQL中使用,不能再SQL语句中使用
3集合方法extend和trim只适用于嵌套表和varray,不适用与索引表
4exists(),count(),limit(),first(),next(),prior(),last()是函数,extend(),trim(),delete()是过程,都是集合方法
语法
collection_name.method_name{(parameters)}
exists()
确定集合元素释放存在,存在返回true,否则返回false
案例
declare
type sname_table_type is table of student.sname%type;–定义嵌套表类型
sname_table sname_table_type;
begin
if sname_table.exists(1) then
sname_table(1):=’aa’;
else
dbms_output.put_line(‘集合元素必须要初始化’);
end if;
end;
count()
返回当前集合变量中元素的总个数
举例
declare
type sname_table_type is table of student.sname%type
index by binary_integer;–定义索引表
sname_table sname_table_type;
begin
sname_table(1):=’aa’;
sname_table(2):=’bb’;
sname_table(3):=’cc’;
sname_table(4):=’dd’;
dbms_output.put_line(‘元素个数’||sname_table.count);
end;
limit()
1返回集合元素的最大个数
2因为嵌套表和索引表的元素个数没有限制,所以调用该方法返回null
3对于varray来说,该方法返回varray所允许的最大元素个数
declare
type sname_table_type is varray(20) of student.sname%type;
sname_table sname_table_type;
begin
sname_table:=sname_table_type(‘lia’,’lilib’);
select sname into sname_table(1) from student where sno=’s001’;
select sname into sname_table(2) from student where sno=’s002’;
dbms_output.put_line(sname_table(1)||’———’||sname_table(2));
dbms_output.put_line(‘集合元素最大个数:’||sname_table.limit);
end;
举例
extend()
1用于扩展集合变量的尺寸,并未集合添加元素
2该方法只适用于嵌套表和索引表。
3extend的调用格式
1)extend:用于为集合变量添加一个null元素
2)extend(n):为集合变量添加n个null元素
3)extend(n,i)为集合添加n个null元素,元素值与第i个元素相同
举例
declare
type sname_table_type is varray(20) of student.sname%type;–可变数组
sname_table sname_table_type;
begin
sname_table:=sname_table_type(‘lia’,’lilib’);
sname_table.extend(5,2);–为集合添加2个元素,元素值与第二个元素相同
dbms_output.put_line(sname_table(1));
dbms_output.put_line(sname_table(2));
dbms_output.put_line(sname_table(3));
dbms_output.put_line(sname_table(4));
end;
trim()
1方法适用于从集合尾部删除元素
2trim的调用格式
1)trim:用于从集合尾部删除一个元素
2)trim(n):用于从集合尾部删除n个元素
举例
declare
type sname_table_type is varray(20) of student.sname%type;–可变数组
sname_table sname_table_type;
begin
sname_table:=sname_table_type(‘lia’,’lilib’,’lilic’,’lilid’);
dbms_output.put_line(‘集合元素个数:’||sname_table.count);
sname_table.trim(2);–为集合删除尾部2个元素,
dbms_output.put_line(‘集合元素个数:’||sname_table.count);
end;
first()
返回集合变量第一个元素的下标
last()
返回集合变量最后一个元素的下标
prior()
返回当前集合变量前一个元素的下标
next()
返回当前集合变量下一个元素的下标
举例
declare
type sname_table_type is table of student.sname%type
index by binary_integer;–定义索引表
sname_table sname_table_type;
begin
sname_table(1):=’aa’;
sname_table(2):=’bb’;
sname_table(3):=’cc’;
sname_table(4):=’dd’;
dbms_output.put_line(‘第一个元素’||sname_table.first);
dbms_output.put_line(‘最后一个元素’||sname_table.last);
dbms_output.put_line(‘第二个元素前一个元素’||sname_table.prior(2));
dbms_output.put_line(‘第二个元素后一个元素’||sname_table.next(2));
end;
delete()
1该方法只适用于嵌套表和索引表,不适用于varray
2delete的调用格式
1)delete:删除集合变量的所有元素
2)delete(n):删除集合变量的第n个元素
3)delete(n,m):删除集合变量从n到m之间的所有元素
案例
declare
type sname_table_type is table of student.sname%type
index by binary_integer;–定义索引表
sname_table sname_table_type;
begin
sname_table(1):=’aa’;
sname_table(2):=’bb’;
sname_table(3):=’cc’;
sname_table(4):=’dd’;
sname_table.DELETE(2,4);
dbms_output.put_line(‘集合元素个数:’||sname_table.count);
end;
相关文章推荐
- 扩展 delphi 泛型 以实现类似lambda功能 , C#中的any count first last 等扩展方法
- 扩展 delphi 泛型 以实现类似lambda功能 , C#中的any count first last 等扩展方法
- java8新特新:接口流-Stream()接口和所有方法(map,foreach,filter,count,distinct,limit,collect,skip,sorted)
- cursor 的moveToFirst和moveToNext和moveToPrevious以及moveToLast
- MVC Kendo总结之-----> Grid(Edit、Cancel、Save、First、Prev、Next、Last)
- c:forEach varStatus属性 current当前这次迭代的(集合中的)项 index当前这次迭代从 0 开始的迭代索引 count当前这次迭代从 1 开始的迭代计数 first用来表明
- 第四章、XML集成(定义XML数据列、XML模式集合、XML数据类型方法 .query,.value,.modify,.nodes,.exists),关系数据转成XML
- 关于集合中迭代器中next()方法重复使用造成的错误
- 步步为营VS 2008 + .NET 3.5(7) - LINQ查询操作符之First、FirstOrDefault、Last、LastOrDefault、ElementAt、ElementAtOrDefault、Contains、Any、All、Count、LongCount、Sum、Min、Max、Average、Aggregate、Cast、DefaultIfEmpty、SequenceEqual、OfType、ToArray、ToList、ToDictionary
- ADO MoveFirst, MoveLast, MoveNext, 与 MovePrevious 方法
- StringBuffer类和String的转换 append方法deleteCharAt方法insert方法insert方法setCharAt方法trimToSize方法
- cursor 的moveToFirst和moveToNext和moveToPrevious以及moveToLast
- C# 中List类的Find,Exists,FindAll,FindIndex ,FindLast ,FindLastIndex等方法的应用举例
- TClientDataSet[14]: 测试 FindFirst、FindNext、FindLast、FindPrior、Found
- 浅谈jQuery中对象遍历.eq().first().last().slice()方法
- 讲解.NET 集合中使用Count属性和扩展方法Count<T>()区别
- LINQ查询操作符之First、FirstOrDefault、Last、LastOrDefault、ElementAt、ElementAtOrDefault、Contains、Any、All、Count 等
- jQuery源码分析之实例调用方法map,slice,first,last,end,sort,splice,push方法详解
- 7、步步为营VS 2008 + .NET 3.5(7) - LINQ查询操作符之First、FirstOrDefault、Last、LastOrDefault、ElementAt、ElementAtOrDefault、Contains、Any、All、Count、LongCount、Sum、Min、Max、Average、Aggregate、Cast、DefaultIfEmpty、SequenceEqual、OfType、ToArray、ToList、ToDictionary
- Scala的集合类中的map方法和count 方法