目標:1.掌握pl/sql概念
2.掌握pl/sql程式設計技術,包括編寫過程、函式、觸發器等
pl/sql(procedural language/sql)是oracle在標準的sql語言上的擴充套件。pl/sql不僅允許嵌入sql語言,還可以自定義變數和常量,允許使用條件語句和迴圈語句,允許使用異常處理各種錯誤,這樣使得它的功能變得更加強大。
1)提高應用程式的效能
2)模組化的設計思想[分頁過程、訂單過程、轉賬過程等]
3)減少網路傳輸量
4)提高安全性
pl/sql缺點
1)移植性不好
3.案例
1.建立乙個簡單的表
createtablemytest(namevarchar2(30),passwordvarchar(30));
2.向表,插入記錄
createorreplaceproceduresp_pro1is
begin
--執行部分
insertintomytest(name,password)values('test','123');
end;
如果在sqlplus
中執行,最後一行加個斜槓
/表示過程完畢
如何呼叫該過程?
①exec過程名
(param list);
②call過程名
1)注釋
①單行注釋: --
select * from emp where ename='scott'; --查詢員工資訊
②多行注釋
/* this is comments */
2)變數的命名規範
①定義變數,建議用v_作為字首:v_sal
②定義常量,建議用c_作為字首:c_rate
③定義游標,建議用_cursor作為字尾:emp_cursor
④定義異常,建議用e_作為字首:e_error
塊(block)是pl/sql的基本程式單元,編寫pl/sql程式實際上是編寫pl/sql塊。要完成相對簡單的應用功能,可能只需要編寫乙個簡單的塊;但是如果想要實現複雜的功能,可能需要乙個pl/sql塊中巢狀其他的塊。
塊的結構示意圖
pl/sql由三個部分組成:定義部分,執行部分,異常處理部分。
如下所示:
declare
/* 定義部分——定義變數、常量、游標、異常、複雜資料型別等 */
begin
/* 執行部分——要執行的pl/sql語句和sql語句 */
exception
/* 異常處理部分——處理各種執行的錯誤 */
end;
特別說明:
1.定義部分是從declare開始的,該部分是可選的;
2.執行部分是從begin開始的,該部分是必須的;
3.異常處理部分是從exception開始的,該部分是可選的
setserveroutputon--
開啟輸出選項
begin
dbms_output.putline('hello world.');
end;
說明:dbms_output是oracle所提供的包,該包包含一些過程,put_line就是該包內建的乙個過程。
例項2:包含定義部分和執行部分的pl/sql塊
declare
v_enamevarchar2(5);--
定字串變數
v_salnumber(7,2);
begin
selectename,salintov_ename,v_salfromempwhereempno=&no;
--&表示要接收從控制台輸入的變數,彈出框
dbms_output.putline('
雇員名:
'||v_ename||'
,薪水:
'||v_sal);
--字串連線符號
||end;
例項3:包含定義部分和執行部分和例外處理的pl/sql塊
為了避免pl/sql程式的執行錯誤,提高pl/sql的健壯性,應該對可能的錯誤進行處理,這個很有必要:
①比如在例項2中,如果輸入了不存在的雇員號,應當做例外處理
②有時出現錯誤,希望用另外的邏輯處理
說明:oracle事先預定義了一些例外,no_data_found就是找不到資料例外。
基礎學習(一) PL SQL程式設計
1.pl sql 塊結構 整個pl sql塊分3部分 declare 宣告部分,可選 begin 執行部分,必須 exception 異常處理部分,可選 end2.資料型別與定義變數和常量 2.1 基本資料型別 1 數值型別 數值型別主要包括number pls integer 和 binary i...
PL SQL程式設計基礎 PL SQL簡介
課程教師 李興華 課程學習者 陽光羅諾 日期 2018 07 28 知識點 1 了解pl sql的主要特點 2 掌握pl sql塊的基本結構 pl sql語法結構 語法 declare 宣告部分,例如。定義變數 常量 游標。begin 程式編寫 sql語句 exeception 處理異常 end 說...
PLSQL 程式設計基礎
sql structured query language 一種結構化查詢語言,是一種資料庫查詢和程式語言,用於訪問資料以及查詢 更新和管理關係資料庫系統。簡單理解為平時說的 增刪改查 等等 不嚴謹 plsql procedural language sql 一種過程化sql語言,是面向過程的。在s...