PLSQL判斷和迴圈

2021-10-01 16:37:31 字數 2769 閱讀 1839

pl/sql是oracle對sql語言的過程化擴充套件,指在sql命令語言中增加了過程處理語言(如分支、迴圈等),使sql語言具有過程處理能力。把sql語言的資料操作能力與過程資料的資料處理能力結合起來,使得plsql面向過程但比過程語言簡單、高效、靈活和使用。

declare

說明部分(變數說明,游標說明,例外說明)

begin

語句序列(dml語句)...

exception

例外處理語句

end;

/

說明變數(char,varchar2,data,number,boolean,long)

var1 char(15); 說明變數名、資料型別和長度後用分號結束說明語句。

married boolean :=true;

psal number(7,2);

my_name emp.ename%type; 引用型變數,即my_name的型別與emp表中ename列的型別一樣

emp_rec emp%rowtype; 記錄型變數

引用變數

在sql中使用into來賦值

declare

emprec ename%type;

begin

select t.ename into emprec from emp t where t.empno = 7369;

dnms_output.put_line(emprec);

end;

記錄型變數

記錄變數分量的引用

emp_rec.ename:='adams';

declare

p emp%rowtype;

begin

select * into p from emp t where t.empno = 7369;

dbms_output.put_line(p.ename||''||p.sal);

end ;

語法

1.if 條件 then 語句1;

語句2;

end if;

例1:如果從控制台輸入1則輸出我是1

declare

pnum number := #

begin

if pnum = 1 then

dbms_output.put_line('我是1');

end if;

end;

2.if 條件 then 語句序列1;

esle 語句序列2;

end if;

例2:如果從控制台輸入1則輸出我是1否則輸出我不是1

declare

pnum number := #

begin

if pnum = 1 then

dbms_output.put_line('我是1');

esle

dbms_output.put_line('我不是1');

end if;

end;

3.if 條件 then 語句;

elsif 語句 then 語句;

else 語句;

end if;

例3:判斷人的不同年齡段18歲一下是未成年人,18歲以上40以下是成年人,40以上是老年人

declare

mynum number := #

begin

if mynum<18 then

dbms_output.put_line('未成年人');

elsif mynum>=18 &&mynum<40 then

dbms_output.put_line('中年人');

elseif mynum>=40 then

dbms_output.put_line('老年人');

end if;

end;

語法:

1.while total <= 25000

loop

...total := total + salary;

end loop;

例1:使用語句1輸出1到10的數字

declare

step number := 1;

begin

while step <=10 loop

dbms_output.put_line(step);

step := step+1;

end loop;

end;

2.loop

exit[when 條件];

...end loop

例2:使用語法2輸出1到10的數字

declare

step number := 1;

begin

loop

exit when step >10;

dbms_output.put_line(step);

step := step + 1;

end loop;

end;

3.for i in 1..3

loop

語句序列;

end loop;

例3:使用語法3輸出1到10的數字

declare

step number := 1;

begin

for step in 1..10

loop

dbms_output.put_line(step);

end loop;

end;

Oracle語句塊PL SQL迴圈判斷

pl sql procedural language sql 被資料庫編譯儲存,由使用者呼叫 cuug本周五晚8點免費網路課程,大家趕緊報名去參加吧!程式塊 語法 declare 宣告變數 宣告變數 age int 沒有預設值的變數 age2 int 0 begin 寫正常的處理語句 dbms ou...

plsql程式設計之,迴圈語句和判斷語句

作業 輸出 薪水等級 2 5 等級 最低和 最高薪水 set serveroutput on declare mysal number 1 myhi number mylo number begin loop if mysal 5 then exit end if select losal,hisa...

pl sql運算元據庫之流程控制(判斷和迴圈)

這篇文章講述的是pl sql運算元據庫之流程控制,如有錯誤或者不當之處,希望各位大神批評指正。if 布林表示式 then pl sql 和 sql語句 elsif 其它布林表示式 then 其它語句 elsif 其它布林表示式 then 其它語句 else 其它語句 endif declare v ...