最簡單的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;
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...