PLSQL基礎(二) 表(相當於陣列)

2021-08-25 21:08:03 字數 2358 閱讀 3168

表 (相當於陣列)

定義乙個表型別的語法如下:

type tabletype is table of type index by binary_integer

其中tabletype是被定義的表型別的名,type是預定義的標量型別或者%type來引用的標量型別。表的索引是binary_integer型別,當定義了表型別後,就可以宣告該型別的變數了。

--定義表型別t_nametable,其元素型別是auths資料庫表中的name列的型別

type t_nametable is table of auths.name%type

index by binary_integer;

--定義表型別t_address,其元素型別是auths表中的address列的型別

type t_addresstable is table of auths.address%type

index by binary_integer;

--宣告兩個表型別變數

v_name t_nameatable;

v_address t_addresstable;

當定義了表型別,並宣告了這個型別變數後,就可以通過下面的語法應用plsql表中的元素了:

tablename(index);

其中tablename是表明,index是表的索引,它用binary_integer型別的變數或是能夠轉換成binary_integer型別的表示式表示.

使用上面的表,為表元素賦值:

begin

v_name(2) := 'wang';

v_address(-3) := 'streetr 1';

end;

eg2:

declare

type t_authorrecord is table of auths%rowtype

index by binary_integer;

v_auths t_authorrecord;

begin

select *

into v_auths(00009)

from auths

where author_code = 'a00009';

end;

因為v_auths表中的每乙個元素都是記錄,所以可以通過下面的語法引用記錄中的域

table(index).field

記錄表在相當程度上提高了plsql表的功能,因為乙個記錄表就可以存放乙個資料庫表中的所有資訊。

plsql表與陣列一樣,當時表的實際結構與陣列是不一樣的,它與c中的陣列有以下不同:

1)plsql表中的元素沒有特定的順序,因為表中的元素不像陣列一樣被連續地儲存在乙個空間內。

2)在plsql表中的key不必是連續的,任意binary_integer型別的值或是表示式都可以作為表的索引(key列)。

3)當向乙個plsql表中插入乙個元素時,就為該錶分配了用以存放該元素的儲存空間。plsql表的大小是沒有限制的。

表屬性plsql中,不僅引入了表,而且通過了表屬性擴充套件了plsql表的功能,使用表屬性的語法是:

table.attribute

語法 返回型別 描述

table.count number 返回plsql表中元素個數

table.delete n/a刪除plsql表中所有元素

table.delete(i) n/a 刪除plsql表中索引號為i指定的元素

table.delete(i,j) n/a 刪除plsql表中索引號i到j之間(包括i和j)指定的元素

table.exists(i) boolean 如果plsql表中索引號為i的元素存在,則返回true

table.firstbinary_integer返回plsql表中最後乙個元素(索引號最小)的索引

table.last binary_integer 返回plsql表中最後乙個元素(索引號最大)的索引

table.next(i)binary_integer 返回plsql表中索引號為i的元素的後繼乙個元素的索引

table.prior(i) binary_integer 返回plsql表中索引號i的元素的前乙個元素的索引

表中的索引號從1開始,每增加乙個元素,索引號隨之增加1,也就是說索引號為1的下乙個元素的索引號是2,再下乙個元素的索引號為3,以此類推,使用這樣的方法建立的plsql表,其表元素在控制結構體中的迴圈實現起來更簡單,當plsql塊在pro*c或oci程式中北呼叫或被嵌入時,使用上述所有方法建立的plsql錶能繫結到c語言的陣列上.

plsql基礎學習 二 PLSQL型別

標量資料型別 a.儲存單一的值 b.沒有內部結構 基本標量資料型別 char,varchar2,long,long raw,number,binary integer,pls integer,boolean,date,timestamp 一 oracle資料型別 1.字元資料型別 char,varc...

PLSQL基礎(一)記錄(相當於結構體)

plsql在工作中斷斷續續會用到,每次用的時候,都需要查資料,熟悉一下語法格式.現在特記錄下來,免得以後使用過程中,總是查資料.塊的分類 塊可以分為以下四類 1 無名塊 動態構造並只能執行一次。2 命名塊 前面加了標號的無名塊 3 子程式 包括儲存在資料庫中的儲存過程,函式和包.這些塊一旦被定義後,...

PL SQL程式設計基礎 PL SQL簡介

課程教師 李興華 課程學習者 陽光羅諾 日期 2018 07 28 知識點 1 了解pl sql的主要特點 2 掌握pl sql塊的基本結構 pl sql語法結構 語法 declare 宣告部分,例如。定義變數 常量 游標。begin 程式編寫 sql語句 exeception 處理異常 end 說...