type 型別名稱 isrecord (
成員名稱 資料型別
[[not null][
:= 預設值
]表示式] ,
...成員名稱 資料型別
[[not null][
:= 預設值
]表示式]
) ;
示例一、記錄型別接收查詢返回結果
--使用記錄型別接收查詢返回結果
declare
v_eno emp.empno
%type;
type emp_type
is record( --
定義記錄型別
ename emp.ename%
type,
job emp.job
%type,
hiredate emp.hiredate
%type,
sal emp.sal
%type,
comm emp.comm
%type
);v_emp emp_type;
--定義乙個指定的復合型別變數
begin
v_eno :=&
eno;
select
ename, job, hiredate, sal, comm
into
v_emp
from
emp
where empno =
v_eno;
dbms_output.put_line(sql
%rowcount||'
員工編號:
'|| v_eno ||
'姓名:'||
v_emp.ename ||'
職位:'
|| v_emp.job ||
'入職日期:'||
to_char(v_emp.hiredate,
'yyyy-mm-dd
') ||
'基本工資:'||
v_emp.sal ||'
佣金:'
|| nvl(v_emp.comm, 0
)); exception
when others then
-20009,'
此員工資訊不存在');
end;
示例二、
declaretype dept_type
isrecord(
deptno dept.deptno
%type:=
99,--
定義預設值
dname dept.dname%
type,
loc dept.loc
%type
);v_dept dept_type;
begin
v_dept.dname:='
tt'; --
為記錄型別成員賦值
v_dept.loc:='上海
';dbms_output.put_line(
'部門編號:
'||v_dept.deptno||
'部門名稱:
'||v_dept.dname||
'部門位置:'||
v_dept.loc);
end;
示例三、定義巢狀的記錄型別
declaretype dept_type
isrecord(
deptno dept.deptno
%type :=
99, --
定義預設值
dname dept.dname%
type,
loc dept.loc
%type);
type emp_type
is record( --
定義記錄型別
empno emp.empno%
type,
ename emp.ename
%type,
job emp.job
%type,
hiredate emp.hiredate
%type,
sal emp.sal
%type,
comm emp.comm
%type,
dept dept_type);
v_emp emp_type;
begin
select
e.empno,
e.ename,
e.job,
e.hiredate,
e.sal,
e.empno,
d.deptno,
d.dname,
d.loc
into
v_emp.empno,
v_emp.ename,
v_emp.job,
v_emp.hiredate,
v_emp.sal,
v_emp.comm,
v_emp.dept.deptno,
v_emp.dept.dname,
v_emp.dept.loc
from
emp e, dept d
where e.empno = d.deptno(+
)
and empno =
&empno;
dbms_output.put_line(sql
%rowcount||'
員工編號:
'|| v_emp.empno ||
'姓名:'||
v_emp.ename ||'
職位:'
|| v_emp.job ||
'入職日期:'||
to_char(v_emp.hiredate,
'yyyy-mm-dd
') ||
'基本工資:'||
v_emp.sal ||'
佣金:'
|| nvl(v_emp.comm, 0
)); dbms_output.put_line(
'部門編號:
'|| v_emp.dept.deptno ||
'部門名稱:'||
v_emp.dept.dname ||'
部門位置:'||
v_emp.dept.loc);
end;
示例四、增加一條新的記錄
declaretype dept_type
isrecord(
deptno dept.deptno
%type, --
定義預設值
dname dept.dname%
type,
loc dept.loc
%type
);v_dept dept_type;
begin
v_dept.deptno:
=&deptno;
v_dept.dname:='
&dname
'; --
為記錄型別成員賦值
v_dept.loc:=
'&loc';
insert
into dept values v_dept; --
直接插入記錄型別
end;
示例
五、修改一條記錄
declaretype dept_type
isrecord(
deptno dept.deptno
%type, --
定義預設值
dname dept.dname%
type,
loc dept.loc
%type
);v_dept dept_type;
begin
v_dept.deptno:
=&deptno;
v_dept.dname:='
&dname
'; --
為記錄型別成員賦值
v_dept.loc:=
'&loc';
update dept set row=v_dept where deptno=
v_dept.deptno;
exception
when others then
dbms_output.put_line(
'沒有這個部門');
end;
記錄型別 學習筆記
定義記錄型別語法 type 型別名稱 is record 成員名稱 資料型別 not null 預設值 表示式 成員名稱 資料型別 not null 預設值 表示式 示例一 記錄型別接收查詢返回結果 type emp type is record 定義記錄型別 ename emp.ename typ...
mysql json型別學習筆記
mysql從5.7.8版本開始支援json型別。json列儲存大小為系統的 max allowed packet json列不能擁有預設值。json型別值分為陣列和物件兩種型別 abc 10,null,true,false json的建立和插入 mysql create table t1 c1 js...
JS的資料型別(學習記錄)
js的資料型別分為基本型別和引用型別。基本型別又稱為值型別,顧名思義,就是按值訪問的型別,基本型別的值會儲存在棧中,儲存與複製的是值本身。基本型別可以使用typeof檢測資料型別。字串型別,使用 或 包起來。數值型別,在js中所有數字皆用浮點數值表示。注意 nan nan 0.1 0.2 0.3 布...