定義記錄型別語法
type 型別名稱 is record (示例一、記錄型別接收查詢返回結果成員名稱 資料型別 [[not null] [:= 預設值] 表示式] ,
...成員名稱 資料型別 [[not null] [:= 預設值] 表示式]
) ;
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 預設值 表示式 示例一 記錄型別接收查詢返回結果 使用記錄型別接收查詢返回結果 declare v eno emp.empno type type emp type i...
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 布...