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.pswp.cn/news/533329.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533329.shtml
英文地址,請注明出處:http://en.pswp.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! 家庭樂趣其中一件事情 就是和小朋友不斷的唱生日歌吹蠟燭…