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