記錄型別 學習筆記

2022-04-19 23:21:31 字數 4450 閱讀 2671

type 型別名稱 is

record (

成員名稱 資料型別

[[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;

示例二、

declare

type 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;

示例三、定義巢狀的記錄型別

declare

type 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;

示例四、增加一條新的記錄

declare

type 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;

示例

五、修改一條記錄

declare

type 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 布...