PLSQL型別相關操作

2021-08-03 00:21:12 字數 3748 閱讀 1142

1.寫乙個plsql程式,輸出」hello world」字串,語法:

dbms_output.put_line('需要輸出的字串');

begin

--向sqlplus客戶端工具輸出字串

dbms_output.put_line('hello 你好');

end;

注意:

dbms_output是oracle中的乙個輸出物件

put_line是上述物件的乙個方法,用於輸出乙個字串自動換行

2.設定顯示plsql程式的執行結果,預設情況下,不顯示plsql程式的執行結果,語法:

set serveroutput on/off;

set serveroutput on;

3.使用基本型別變數,常量和注釋,求10+100的和

declare

--定義變數

mysum number(3) := 0;

tip varchar2(10) := '結果是';

begin

/*業務演算法*/

mysum := 10 + 100;

/*輸出到控制器*/

dbms_output.put_line(tip || mysum);

end;

4.輸出7369號員工姓名和工資,格式如下:7369號員工的姓名是smith,薪水是800,語法:使用表名.欄位%type

declare

--定義二個變數,分別裝姓名和工資

pename emp.ename%type;

psal emp.sal%type;

begin

--sql語句

--select ename,sal from emp where empno = 7369;

--plsql語句,將ename的值放入pename變數中,sal的值放入psal變數中

select ename,sal into pename,psal from emp where empno = 7369;

--輸出

dbms_output.put_line('7369號員工的姓名是'||pename||',薪水是'||psal);

end;

5.輸出7788號員工姓名和工資,格式如下:7788號員工的姓名是smith,薪水是3000,語法:使用表名%rowtype

declare

emp_record emp%rowtype;

begin

select * into emp_record from emp where empno = 7788;

dbms_output.put_line('7788號員工的姓名是'||emp_record.ename||',薪水是'||emp_record.sal);

end;

6.何時使用%type,何時使用%rowtype?

當定義變數時,該變數的型別與表中某字段的型別相同時,可以使用%type

當定義變數時,該變數與整個表結構完全相同時,可以使用%rowtype,此時通過變數名.欄位名,可以取值變數中對應的值

專案中,常用%type

7.plsql判斷

(1)使用if-else-end if顯示今天星期幾,是」工作日」還是」休息日」

declare

pday varchar2(10);

begin

select to_char(sysdate,'day') into pday from dual;

dbms_output.put_line('今天是'||pday);

if pday in ('星期六','星期日') then

dbms_output.put_line('休息日');

else

dbms_output.put_line('工作日');

endif;end;

(2)從鍵盤接收值,使用if-elsif-else-end if顯示」age<16」,」age<30」,」age<60」,」age<80」

declare

age number(3) := &age;

begin

if age < 16

then

dbms_output.put_line('你未**');

elsif age < 30

then

dbms_output.put_line('你青年人');

elsif age < 60

then

dbms_output.put_line('你奮鬥人');

elsif age < 80

then

dbms_output.put_line('你享受人');

else

dbms_output.put_line('未完再繼');

endif;end;

8.plsql迴圈

(1)使用loop迴圈顯示1-10

declare

i number(2) := 1;

begin

loop

--當i>10時,退出迴圈

exit

when i>10;

--輸出i的值

dbms_output.put_line(i);

--變數自加

i := i + 1;

endloop;

end;

(2)使用while迴圈顯示1-10

declare

i number(2) := 1;

begin

while

i<11

loop

dbms_output.put_line(i);

i := i + 1;

end loop;

end;

(3)使用while迴圈,向emp表中插入999條記錄

declare

i number(4) := 1;

begin

while( i < 1000 )

loop

insert

into emp(empno,ename) values(i,'哈哈');

i := i + 1;

end loop;

end;

(4)使用while迴圈,從emp表中刪除999條記錄

declare

i number(4) := 1;

begin

while i<1000

loop

delete

from emp where empno = i;

i := i + 1;

end loop;

end;

(5)使用for迴圈顯示20-30

declare

i number(2) := 20;

begin

for i in

20 .. 30

loop

dbms_output.put_line(i);

end loop;

end;

pl sql記錄型別

1.定義plsql記錄 可以自定義記錄型別和記錄變數。也可以使用 rowtype屬性定義記錄變數。自定義plsql記錄 需要分別定義記錄型別和記錄變數。例如 declare type emp record type is record 定義記錄型別 name emp.ename type,記錄成員 ...

PL SQL 日期型別

在pl sql中共有三個日期型別 today date date sysdate today timestamp timestamp systimestamp today timetzone timestamp with time zone systimestamp today local time...

plsql記錄型別

1 基於表的記錄 2 基於游標的記錄 3 使用者自定義的記錄 使用 rowtype屬性,可以建立基於表和基於游標的記錄.plsql 提供使用者定義的記錄型別,使用它可以完全控制記錄結構,建立的通用語法 b type type name is record field1 datatype not nu...