oracle資料庫之PL SQL程式結構(上)

2021-07-09 19:32:56 字數 4180 閱讀 7109

標籤: sql

plsql

oracle

程式結構

2013-04-09 21:12

591人閱讀收藏

oracle(6)

最簡單的pl/sql 程式

declare

begin

dbms_output.put_line(『helloworld』);--注意是單引號

end;

這個是在dos

視窗裡所應該寫的,但是在

pl/sql

工具裡不需要 

/ 結束標誌;

首先應該注意的是:

如果要在螢幕上輸出資訊,需要將serveroutput

開關開啟

set serveroutput on

那讓我們首先了解一下什麼是pl/sql以及程式結構的組成

pl/sql(

procedure language/sql)

plsql是

oracle

對sql

語言的過程化擴充套件

指在sql

命令語言中增加了過程處理語句(如分支、迴圈等),使

sql語言具有過程處理能力。

sql優點:互動式非過程化;資料操縱功能強;自動導航語句簡單;除錯容易使用方便。

pl/sql程式結構

declare

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

begin

語句序列   (dml

語句〕… 

exception

例外處理語句   

end;

在這裡提示一下pl/sql的注釋是 

--   

或者用/* */

變數和常量的說明:

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

married boolean :=true; --注意這裡的賦值有什麼區別

psal number(7,2); -- 表示

psal

最大有7

位數,兩位為小數

my_name emp.ename%type;--表示

myname

型別為 

emp表中的

ename

的型別

emp_rec emp%rowtype; --代表記錄型變數,這是一整條記錄

if語句的三種表示式:詳情請看例項

1. if   條件  

then 

語句1;

語句2;

end if;

2. if  條件  

then  

語句序列

1;   

esle   語句序列 2;

end   if;

3. if   條件  

then 語句;

elsif  語句  

then  語句;

else    語句;

end  if;

if語句示例:

accept num prompt '請輸入數字

';--

接收鍵盤輸入的值  會自動儲存

num的值

declare--宣告

pnum number :=#-- &代表取值 

pnum  

格式 宣告變數  變數型別 

begin

dbms_output.put_line(pnum);

end;

迴圈語句:

第一種:

while  total  <= 25000  loop

total : = total + salary;

end  loop;

第二種:

loop

exit [when   條件];

end loop

第三種:

for   i   in   1 . . 3    loop

語句序列 ;

end    loop ; 

接下來講一下重點的游標:

說明游標語法:

cursor  游標名  

[ (引數名  資料型別

[,引數名 資料型別

]...)]

is  select   語句;

用於儲存乙個查詢返回的多行資料

開啟游標:     open c1;    (

開啟游標執行查詢)

取一行游標的值:fetch c1 into pjob; (

取一行到變數中)

關閉游標:          close  c1;(

關閉游標釋放資源)

注意: 上面的pjob

必須與emp

表中的job

列型別一致:

定義:pjob emp.job%type;

按員工的工種長工資,

總裁1000

元,經理長

800元其,他人員長

400元。

---隱式游標

declare

--宣告

emp_rec emp

%rowtype

;--記錄

begin

foremp_rec in(

select

*from

emp)

--in 變數  變數必須是游標

loop

--迴圈的開始

dbms_output.put_line

('員工名稱:'

||emp_rec.ename

);end

loop

;--迴圈的結束

end;

--帶引數的游標

declare

cursorcl(

pno 

number)is

select

*from

emp 

where

empno

=pno

;--查詢出所有的emp記錄 儲存到 cl游標中

begin

foremp_row 

incl

(7499

)--開啟游標 (自動)   檢索資料(自動)  關閉游標(自動)  emp_row 變數也不需要定義

loop

dbms_output.put_line

(emp_row.ename

);end

loop

;end;例外

例外是程式語言提供的一種功能,用來增強程式的健壯性和容錯性。

oracle的異常處理

系統定義例外

no_data_found    (沒有找到資料)

too_many_rows          (select …

into

語句匹配多個行) 

zero_divide   ( 被零除)

value_error     (算術或轉換錯誤)

timeout_on_resource      (在等待資源時發生超時)

使用者定義的例外

declare

no_data exception;   --設定乙個例外名字

emp_row emp%rowtype; --記錄性變數

cursor cl(pno number) is select *  from emp where empno=pno; --定義游標 

pno 

查詢emp

中與員工號相等的資料

begin

open cl(0000);  --為游標賦值

fetch cl into emp_row; --在

cl中取出資料 給

emp_row

if cl%notfound then raise no_data; --在這裡丟擲例外 判斷語句

end if;

close cl;

exception                       --在這裡捕獲例外

when no_data then

dbms_output.put_line('沒有找到資料

');

end;

頂 1 踩

0

Oracle資料庫之PL SQL異常處理

異常指的是在程式執行過程中發生的異常事件,通常是由硬體問題或者程式設計問題所導致的。pl sql程式設計過程中,即使是寫得最好的程式也可能會遇到錯誤或未預料到的事件。乙個健壯的程式都應該能夠正確處理各種異常情況,並盡可能從中恢復。1.異常處理 異常處理是用來處理正常執行過程中未預料的事件。pl sq...

ORACLE資料庫PLSQL筆記

oracle資料庫plsql筆記 pl sql 是oracle的程式語言,用於擴充套件sql的程式設計能力,為資料庫程式增加了許多可能的功能。它允許將過程控制語句與 sql語句結合使用oracle 特有的程式語言pl sql補充了標準的關聯式資料庫語言sql,提供了各種過程化特性,包括迴圈 if t...

PLSQL連線oracle資料庫

方法一 instantclient 12 2 1 安裝 instantclient 12 2 軟體 免安裝oracle客戶端 2 plsql配置 開啟plsql 點取消,彈出plsql主介面 選單欄的tools 屬性preferences 首選項 連線 3 連線資訊 1 連線資訊 可以是ip 152...