mysql的复合类型_PLSQL 复合类型数据
?復(fù)合類型是用戶定義的
常用的復(fù)合類型有:屬性 記錄 表 數(shù)組
(1)
屬性類型(引用數(shù)據(jù)庫(kù)列的數(shù)據(jù)類型)
%TYPE – 引用變量和數(shù)據(jù)庫(kù)列的數(shù)據(jù)類型
如:empcode emp.empno%type
%ROWTYPE – 提供表示表中一行的記錄類型
如:emp_ex emp%ROWTYPE
說(shuō)明:聲明變量emp_ex,它可以用于存儲(chǔ)從emp中提取的記錄
(2)
記錄類型(對(duì)應(yīng)數(shù)據(jù)庫(kù)表中的一行)
兩種方法:自定義記錄類型和記錄變量或者使用%ROWTYPE屬性定義記錄變量
自定義記錄類型和記錄變量的語(yǔ)法:
TYPE
IS RECORD(
【NOT
NULL【:=】】;
【NOT
NULL【:=】】;)
小例子:(很簡(jiǎn)單,依葫蘆畫(huà)瓢)
declare
type emp_record_type is
record?定義一個(gè)記錄類型,名稱為 emp_record_type
(v_ename
emp.ename%type,?格式“字段名 表名.表中的字段名%type”
v_job emp.job%type,
v_sal emp.sal%type);
emp_rec
emp_record_type;?記錄變量名:emp_rec(別名)?emp_record_type記錄類型
begin
select ename,job,sal into
emp_rec?格式“select 字段 into 記錄變量名 from 表名
where…”
from emp where
empno=&eno;
dbms_output.put_line(emp_rec.v_ename||':'
emp_rec.v_job||';'||emp_rec.v_sal);
end;
/
(3)?表類型(保存在數(shù)據(jù)緩沖區(qū)中的沒(méi)有特別的存儲(chǔ)次序的,可以離散存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu))
語(yǔ)法:
TYPE
IS TABLE OF
INDEX BY
BINARY_INTEGER
說(shuō)明:
表類型名:用戶定義的
數(shù)據(jù)類型:表中元素的數(shù)據(jù)類型
例子:
declare
TYPE ename_table_type IS TABLE OF
emp.ename%TYPE
INDEX BY BINARY_INTEGER;
Ename_table ename_table_type;
begin
select ename INTO ename_table(1) from
emp?注意了:這里別忘了有個(gè)1哦。。。。指定元素的數(shù)目
where empno=7902;
dbms_output.put_line('員工名:'||ename_table(1));
end;
/
(4)?數(shù)組類型
與表類型的區(qū)別就是聲明了一個(gè)數(shù)組就確定了數(shù)組中的元素的數(shù)目
特點(diǎn):元素的次序是固定而且連續(xù)的,并且索引變量從1開(kāi)始一直到其定義的最大值為止
語(yǔ)法:
TYPE
IS
VARRAY() OF
;
說(shuō)明:
數(shù)組類型名:用戶定義的
數(shù)據(jù)類型:數(shù)組中元素的數(shù)據(jù)類型
MAX_SIZE:指明數(shù)組元素個(gè)數(shù)的最大值
總結(jié)
以上是生活随笔為你收集整理的mysql的复合类型_PLSQL 复合类型数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql 查询重写_mysql 学习
- 下一篇: java窗口绘图_JAVA-窗口中绘制图