mysql的复合类型_PLSQL 复合类型数据
?復合類型是用戶定義的
常用的復合類型有:屬性 記錄 表 數組
(1)
屬性類型(引用數據庫列的數據類型)
%TYPE – 引用變量和數據庫列的數據類型
如:empcode emp.empno%type
%ROWTYPE – 提供表示表中一行的記錄類型
如:emp_ex emp%ROWTYPE
說明:聲明變量emp_ex,它可以用于存儲從emp中提取的記錄
(2)
記錄類型(對應數據庫表中的一行)
兩種方法:自定義記錄類型和記錄變量或者使用%ROWTYPE屬性定義記錄變量
自定義記錄類型和記錄變量的語法:
TYPE
IS RECORD(
【NOT
NULL【:=】】;
【NOT
NULL【:=】】;)
小例子:(很簡單,依葫蘆畫瓢)
declare
type emp_record_type is
record?定義一個記錄類型,名稱為 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)?表類型(保存在數據緩沖區中的沒有特別的存儲次序的,可以離散存儲的數據結構)
語法:
TYPE
IS TABLE OF
INDEX BY
BINARY_INTEGER
說明:
表類型名:用戶定義的
數據類型:表中元素的數據類型
例子:
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?注意了:這里別忘了有個1哦。。。。指定元素的數目
where empno=7902;
dbms_output.put_line('員工名:'||ename_table(1));
end;
/
(4)?數組類型
與表類型的區別就是聲明了一個數組就確定了數組中的元素的數目
特點:元素的次序是固定而且連續的,并且索引變量從1開始一直到其定義的最大值為止
語法:
TYPE
IS
VARRAY() OF
;
說明:
數組類型名:用戶定義的
數據類型:數組中元素的數據類型
MAX_SIZE:指明數組元素個數的最大值
總結
以上是生活随笔為你收集整理的mysql的复合类型_PLSQL 复合类型数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 查询重写_mysql 学习
- 下一篇: java窗口绘图_JAVA-窗口中绘制图