PL/SQL的結構

  PL/SQL Developer是一個集成開發環境,專門開發面向Oracle數據庫的應用。PL/SQL也是一種程序語言,叫作過程化SQL語言(Procedural Language/SQL)。PL/SQL是Oracle數據庫對SQL語句的擴展。在普通SQL語句的使用上增長了編程語言的特色,因此PL/SQL把數據操做和查詢語句組織在PL/SQL代碼的過程性單元中,經過邏輯判斷、循環等操做實現複雜的功能或者計算。MySQL 也支持 PL/SQL 的,但支持Navicat Premium。java

1、組成:sql

一、定義部分:數據庫

  定義一些常量、變量等;編程

二、執行部分:(必須存在)oracle

  包含要執行的sql語句;編程語言

三、異常處理部分:oop

  捕獲異常(可能出現的運行錯誤,並編寫出錯後的代碼)。spa

declare
 --變量聲明部分
begin
 --執行部分
exception
 --異常處理部分
End

2、調試:調試

使用set serveroutput on 命令設置環境變量;
serveroutput爲打開狀態,從而使得pl/sql程序可以在SQL*plus中輸出結果。
在編寫存儲過程時,有時會用
dbms_output.put_line將必要的信息輸出,以便對存儲過程進行調試,只有將serveroutput變量設爲on後,信息才能顯示在屏幕上。code

3、變量的定義:(相似java裏面的匿名方法)

一、格式:

變量名 變量類型(oracle裏面數據類型) [約束] default 默認值

變量名 變量類型 [約束] [:=初始值]

二、

SQL> declare
  2    i number default 10;
  3  begin
  4    i:=i+10;
  5    dbms_output.put_line(i);
  6  end;
  7  /
20
PL/SQL procedure successfully completed

4、流程控制語句:

一、if語句:

if 條件 then
...
end if;



if 條件 then
...
else
...
end if;


if 條件 then
...
elsif 條件 then
...
end if;
SQL> declare
  2      age number default 90;
  3      height number := 175;
  4      gender char(4) := '';
  5  begin
  6      if gender='' then
  7          dbms_output.put_line('你能夠和女性結婚');
  8      end if;
  9  
 10      if height>170 then
 11          dbms_output.put_line('能夠打籃球');
 12      else
 13          dbms_output.put_line('能夠踢足球');
 14      end if;
 15  
 16      if age<20 then
 17          dbms_output.put_line('年輕小夥');
 18      elsif age <= 50 then
 19          dbms_output.put_line('年輕有爲');
 20      elsif age <=70 then
 21          dbms_output.put_line('安享天倫');
 22      else
 23          dbms_output.put_line('佩服佩服');
 24      end if;
 25  
 26  end;
 27  /
你能夠和女性結婚
能夠打籃球
佩服佩服
PL/SQL procedure successfully completed

 

 二、while循環:

while 條件 loop
循環體
end loop

三、for循環:

for 循環變量 in [reverse] 起始值..終止值 loop
    循環體
end loop

reverse 是倒序;注意起始值與終止值中間有兩點

四、loop循環語句:

loop
--循環體
exit when 條件;
end loop;
SQL> declare
  2      i number :=0;
  3      total number :=0;
  4  begin
  5      loop
  6          i := i+1;
  7          total := total + i;
  8  
  9          exit when i>=100;
 10      end loop;
 11  
 12      dbms_output.put_line('總和'||total);
 13  
 14  end;
 15  /
總和5050
PL/SQL procedure successfully completed

4、存儲過程建立語句:

存儲過程就是有名字的plsql塊!

procedure就是存儲過程!

create or replace procedure 名稱[(參數)]--此名稱相似java裏的方法名
authid current_user|definer --以定義者仍是調用者的身份運行
is[不要加declare]
--變量聲明部分
begin
--主體部分,封裝起來,而後調用的時候纔開始執行,相似於調用方法!!!
exception
--異常部分
end;
SQL> create procedure a2(width int,height int)
  2      is
  3      area int:=0;
  4      begin
  5      area:=width*height;
  6      dbms_output.put_line('area is'||area);
  7      end;
  8  /
Procedure created
--調用存儲過程--有參的!
call a2(1,2);
相關文章
相關標籤/搜索