oracle组合数据类型,oracle复合数据类型-相关方法

oracle提供了一些内置的函数和方法来操作复合数据类型。

一、count 返回集合中的元素的个数

declare

type ename_table_type is table of varchar2(20) index by binary_integer ;

ename_table ename_table_type ;

begin

for i in 1..5 loop

ename_table(i):='a'||i ;

end loop ;

dbms_output.put_line('元素个数:'||ename_table.count) ;

for c in 1..ename_table.count loop

dbms_output.put_line(ename_table(c)) ;

end loop ;

end ;

二、exists 用于确定集合元素是否存在,如果存在则返回true,否则返回false

SQL> declare

2 type ename_table_type is table of varchar2(20);

3 ename_table ename_table_type ;

4 BEGIN

5       IF ename_table.exists(1) THEN

6             ename_table(1):='scot' ;

7       ELSE

8            dbms_output.put_line('嵌套表使用前要初始化');

9       END if ;

10 end;

11 /

嵌套表使用前要初始化

PL/SQL procedure successfully completed

三、first&last first返回集合第一个元素的下标,last返回集合最后一个元素的下标。

SQL> DECLARE

2 TYPE ename_varray_type IS table OF varchar2(20) INDEX BY binary_integer;

3 ename_varray ename_varray_type ;

4 BEGIN

5       ename_varray(1):='mary' ;

6       ename_varray(4):='scott' ;

7       ename_varray(5):='tiger' ;

8       ename_varray(7):='lucy' ;

9       dbms_output.put_line('第一个元素下标:'||ename_varray.first);

10       dbms_output.put_line('最后个元素下标:'||ename_varray.last);

11 end ;

12 /

第一个元素下标:1

最后个元素下标:7

PL/SQL procedure successfully completed

四、prior&next prior返回当前元素前一个元素的下标,next返回当前元素下一下元素的下标

SQL> DECLARE

2 TYPE ename_varray_type IS table OF varchar2(20) INDEX BY binary_integer;

3 ename_varray ename_varray_type ;

4 BEGIN

5       ename_varray(1):='mary' ;

6       ename_varray(4):='scott' ;

7       ename_varray(5):='tiger' ;

8       ename_varray(7):='lucy' ;

9       dbms_output.put_line('元素5的前一个元素下标:'||ename_varray.prior(5));

10       dbms_output.put_line('元素5的后一个元素下标:'||ename_varray.next(5));

11 end ;

12 /

元素5的前一个元素下标:4

元素5的后一个元素下标:7

PL/SQL procedure successfully completed

五、delete

DECLARE

TYPE ename_varray_type IS table OF varchar2(20) INDEX BY binary_integer;

ename_varray ename_varray_type ;

BEGIN

ename_varray(1):='mary' ;

ename_varray(4):='scott' ;

ename_varray(5):='tiger' ;

ename_varray(6):='lucy' ;

ename_varray(7):='LILI' ;

ename_varray(8):='join' ;

ename_varray(9):='wzj' ;

FOR c IN 1..ename_varray.count LOOP

IF ename_varray.exists(c) then

dbms_output.put_line('下标为'||c||'的值为:'||ename_varray(c));

END IF ;

END loop ;

ename_varray.delete(5);

dbms_output.put_line('删除下标为5的元素之后');

FOR c IN 1..ename_varray.count LOOP

IF ename_varray.exists(c) then

dbms_output.put_line('下标为'||c||'的值为:'||ename_varray(c));

END IF ;

END loop ;

ename_varray.delete(8,9);

dbms_output.put_line('删除下标为8,9的元素之后');

FOR c IN 1..ename_varray.count LOOP

IF ename_varray.exists(c) then

dbms_output.put_line('下标为'||c||'的值为:'||ename_varray(c));

END IF ;

END loop ;

end ;

delete删除所有元素,delete(n)删除下标为n的元素,delete(m,n)删除下标元素在[m,n]中的元素。

六、extend   只用于嵌套表和变长数组,用来扩展元素个数

SQL> DECLARE

2 TYPE ename_varray_type IS varray(10) OF varchar2(20);

3 ename_varray ename_varray_type :=ename_varray_type('');

4 BEGIN

5      FOR c IN 1..9 LOOp

6          ename_varray(c):='a'||c ;

7          ename_varray.extend ;

8      END LOOP ;

9      FOR c IN 1..ename_varray.count LOOP

10         dbms_output.put_line('下标为'||c||'的元素为:'||ename_varray(c));

11      END LOOP ;

12 end ;

13 /

下标为1的元素为:a1

下标为2的元素为:a2

下标为3的元素为:a3

下标为4的元素为:a4

下标为5的元素为:a5

下标为6的元素为:a6

下标为7的元素为:a7

下标为8的元素为:a8

下标为9的元素为:a9

下标为10的元素为:

PL/SQL procedure successfully completed

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hibernate native oracle,hibernate native 主键生成策略

前一次做个系统用的oracle数据库,使用hibernate生成主键的策略是SEQUENCE,当时觉得很累,因为不知道怎么的,oraclesequencetrigger怎么也取不到新增数据时的主键值。这次就把重点放这里了,同时还有两个新的问题,1。到底…

export Oracle_sid =asm,单实例下oracle数据库从文件系统迁移到ASM上

第一步:启动ASM实例(ASM)[oracleoracle ~]$ export ORACLE_SIDASM[oracleoracle ~]$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.5.0 - Production on Tue Jan 18 13:25:46 2011Copyright (c) 1982, 2010, Oracle. All Rights Reserved.Connected to:Oracle Dat…

linux命令行的操作符,如何在Linux命令行中进行基本的数学运算

原标题:如何在Linux命令行中进行基本的数学运算Linux bash或命令行允许您执行基本和复杂的算术和布尔运算。像expr,jot,bc和factor等命令可以帮助您找到复杂问题的最优数学解决方案。在本文中,我们将描述这些命令并提供示例&#…

在linux关闭的命令,关于关闭Linux计算机的命令操作

关于关闭Linux计算机的命令操作shutdown -h now 立即关机shutdown -r now 立即重启Linux命令:shutdown功能说明:系统关机指令。语法:shutdown [-efFhknr][-t 秒数][时间][警告信息]补充说明:shutdown指令可以关闭所有程序&#xf…

linux什么用户什么任务,linux任务里的1 和2是什么意思

输出学过代码的小伙伴应该知道STDIN、STDOUT、STDERR通常都是指定输出通道的,perl里又称之为句柄那么1代表的就是STDOUT、2代表的是STDERR、jimmy在视频中会翻译成1代表的是正确输出,2代表的是错误输出。其实严格上不能这样去固有化去理解每一个软件的定…

linux 命令 查询丢包率,linux测试丢包率的命令 linux查看丢包率命令

关于用ping命令测网络延迟和丢包率?在工作中,ping命令用于测试网络是否可以连接。其次是网络连接的稳定性,也就是所谓的丢包率。延时参数可手动设定,影响因素较多。输入windows dos并输入Ping/all以查看所有参数分析和单个示例。L…

linux http连接超时时间设置,Linux 下 HTTP连接超时

将项目部署到现场环境,HTTP请求莫名奇妙的连接超时,通过抓包定位了问题,是请求的IP被禁止掉。其中用到了抓包,将记录记录于此。tcpdump host 120.197.89.51 -i any -vvv::06.241085 IP (tos 0x0, ttl , id , offset , flags [DF],…

linux 库的头文件安装在,“找不到jpeg的头文件或库文件”在Alpine Linux上安装枕头...

我试图在基于python:alpine的Docker容器中运行Python的Scrapy。它以前是有效的,但现在我想使用Scrapy的Image Pipeline这需要我安装枕头。作为一个简单的例子,我尝试了以下Dockerfile:FROM python:alpineRUN apk --update add libxml2-dev li…

linux .desktop权限,如何在Ubuntu Xenial Xerus 16.04 Linux Desktop上以root用户身份登录

您可能已经注意到,默认情况下,Ubuntu Xenial Xerus 16.04 Linux Desktop不具备以root管理员用户身份登录的功能。每次尝试以root用户身份在终端上登录都会导致Login incorrect错误信息:。默认的Ubuntu Linux桌面行为的背后原因是,…

DBackup环境部署linux,linux_BackupPC 安装部署

yum installperl-Compress-Zlib perl-Archive-Zip perl-File-RsyncP perl-XML-RSShttpdyum-y install perl-suidperl mod_perlrpm -ivhbackuppc_community-3.2.0beta0-1.rhel5.noarch.rpm1- 上面安装会创建backuppc,apache用户。vi/etc/httpd/conf/httpd.conf修改‘User apache…

linux18配置静态ip,ubuntu18配置静态IP地址

xavier NX板子上安装的事ubuntu18, 简单记录一下ubuntu18如何配置静态IP地址。首先生成一下文件:sudo netplan generate运行这一句的时候如果提示netplan command not found,执行下面的命令sudo apt install netplan.io然后创建文件sudo vim /etc/netpla…

2048游戏c语言linux简易代码,C语言实现2048游戏代码

本文实例为大家分享了C语言实现2048游戏具体代码,供大家参考,具体内容如下效果图:使用文本界面的屏幕绘图库 ncurses.设计思路:在满足条件情况下消除方块允许在游戏主界面(16 宫格)中任意一格输出数据实现代码:#include #include #include #include #inc…

linux访问网站出现443,Linux访问网站一直出现超时

问题描述:开发java应用时,需要访问此网站,在windows上一切正常访问,部署到linux服务器上就出现了访问超时[rootVM_18_115_centos ~]# wget https://wap.zhengzhoubus.com/buswechat/WifiBusInterface/transfer/line!getLineAll.ac…

linux十大证书,验证Linux上的X.509证书

openssl verify会做你想要什么,如果你想有一个简单的工具:从运行:cd /usr/share/ca-certificatesfind . -type f -exec openssl -verify {} \;这里有一个选择的输出:./telesec.de/deutsche-telekom-root-ca-2.crt: OK./brasil.gov…

linux shell结构,linux——Shell的控制结构(附shell编写代码和运行结果)

针对shell的控制结构,也就是shell编程时所需要的三种控制流程,顺序/分支和循环。在bash中,顺序可由简单的输入输出命令组成;分支语句由if、case实现;循环语句用for、while和until来实现。一、if语句1、基本的if语句语句…

c语言里字符串和字符串字面量,string literals(字符串字面量)

构造一个指定字符数组类型的未命名对象,用于需要在源代码中嵌入字符串时使用。句法" s-char-sequence "(1)u8 " s-char-sequence "(2)(since C11)u " s-char-sequence "(3)(since C11)U " s-char-sequence "(4)(since C11)…

c语言 函数指针开销,函数指针是否使程序变慢?

AnT..82您可以看到,在从性能角度来看实际上很重要的情况下,例如在一个周期中多次重复调用该函数,性能可能根本不同.这对于人们来说可能听起来很奇怪,他们习惯于将C代码视为由抽象的C机器执行的,其机器语言与C语言本身密切相关.在这种情况下,"默认情况下"对函数的间接…

tms320c2000 c语言伪指令,TMS320F240XDSP汇编及C语言多功能控制应用(附光盘)

摘要:本书以SNF2407M实验开发系统配合CPLD的SNDSP2407P接口,以简易的C语言和快速的汇编语言编写达20个以上的范例实验及多个专题制作,主要内容如下:TMS320LF2407系列MCU的硬件架构,内存配置及指令格式和其运作功能;C2000的CC或CCS程序的编辑,编译及除错等操作;DSP搭…

用C语言编写绳索运动函数,福建省教师招聘考试小学数学真题试卷

2014年福建省中小学新任教师公开招聘考试小学数学试卷(课程代码09202)1. 本试卷满分150分,考试时间120分钟。2. 本试卷分为两部分:第一部分为选择题,第二部分为非选择题。3. 请把所有答案涂、写在答题卡上。不要错位、越界答题.一、单项选择题…

c语言 三个小球排排坐,关颖三个孩子排排坐 太萌啦

0关颖三个孩子排排坐 太萌啦2019-12-10 10:596月20日,关颖在微博上晒出三个孩子坐在垫子上的照片,配文:“Terrible two has officially started today. Happy happy birthday Phi Phi! 家庭乐趣其中一件事情 就是和小朋友不断的唱生日歌吹蜡烛…