程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> OraclePL編程語言的優點介紹

OraclePL編程語言的優點介紹

編輯:Oracle數據庫基礎

OraclePL/SQL通俗的講就是過程語言(Procedural Language)和結構化查詢的相關語言(SQL)相結合而演變成的編程語言,OraclePL/SQL其實就是對SQL 的擴展,它支持多種數據類型,如大對象和集合類型可以使用條件和循環等控制結構。

可以創建存儲過程,觸發器和程序包,給SQL 語句的執行添加程序邏輯!他與Oracle服務器

和Oracle工具緊密集成,具備可移植,靈活性和安全性。

PL/SQL 的優點

支持 SQL

數據操縱命令

事務控制命令

游標控制

SQL 函數和 SQL 運算符

支持面向對象編程 (OOP)

可移植性

可運行在任何操作系統和平台上的Oralce 數據庫。

更佳的性能

與 SQL 緊密集成,簡化數據處理

支持所有 SQL 數據類型

支持 NULL 值

支持 %TYPE 和 %ROWTYPE 屬性類型

安全性

可以通過存儲過程限制用戶對數據的訪問。

PL/SQL 的體系結構

PL/SQL引擎駐留在Oracle服務器中,該引擎接受PL/SQL塊,並且對起

進行編譯執行!

PL/SQL 塊簡介

OraclePL/SQL塊是構成程序的基本單位,每一個塊都包含有PL/SQL和SQL語句,典型的PL/SQL代碼塊包含如下結構:

(1).聲明部分

(2)可執行部分

(3)異常處理

語法結構如下:

[DECLARE

declarations]—聲明部分

BEGIN

executable statements---可執行部分

[EXCEPTION –異常處理

  1. handlers]  
  2. END;  

代碼示例:

DECLARE

qty_on_hand NUMBER(5); --程序聲明部分,定義變量,游標和自定義常量

  1. BEGIN   
  2. SELECT quantity INTO qty_on_hand -  
  3. FROM Products -  
  4. WHERE product = '芭比娃娃' -  
  5. FOR UPDATE OF quantity; -  
  6. IF qty_on_hand > 0 THEN -  
  7. UPDATE Products SET quantityquantity = quantity + 1 - 

WHERE product = '芭比娃娃'; 程序執行部分

  1. INSERT INTO purchase_record -  
  2. VALUES ('已購買芭比娃娃', SYSDATE); -  
  3. END IF; -  
  4. COMMIT; - 

EXCEPTION /* 異常處理語句 * / -----------------------異常處理

  1. WHEN OTHERS THEN -  
  2. DBMS_OUTPUT.PUT_LINE('出錯:'|| SQLERRM); -  
  3. END; 

變量和常量

OraclePL/SQL 塊中可以使用變量和常量

在聲明部分聲明,使用前必須先聲明

聲明時必須指定數據類型,每行聲明一個標識符

在可執行部分的 SQL 語句和過程語句中使用

聲明變量和常量的語法

  1. identifIEr [CONSTANT] datatype [NOT NULL]   
  2. [:= | DEFAULT expr];  

給變量賦值有兩種方法

使用賦值語句 :=

使用 select into 語句

代碼示例:

  1. DECLARE  
  2. icode VARCHAR2(6);   
  3. p_catg VARCHAR2(20);   
  4. p_rate NUMBER;   
  5. c_rate CONSTANT NUMBER :0.10;   
  6. BEGIN  
  7. ...  
  8. icode :'i205';   
  9. SELECT p_category, itemrate * c_rate  
  10. INTO p_catg, p_rate  
  11. FROM itemfile WHERE itemcode = icode;   
  12. ...  
  13. END; 

數據類型

OraclePL/SQL支持的內置數據類型有如下幾種:

如圖:

標量類型

數字

字符

CHAR

VARCHAR2

LONG

RAW

LONG RAW

結構如圖:

日期時間類型

日期時間類型

存儲日期和時間數據

常用的兩種日期時間類型

DATE

TIMESTAMP

布爾類型

此類別只有一種類型,即BOOLEAN類型

用於存儲邏輯值(TRUE、FALSE和NULL)

不能向數據庫中插入BOOLEAN數據

不能將列值保存到BOOLEAN變量中

只能對BOOLEAN變量執行邏輯操作

如圖:

LOB類型

用於存儲大文本、圖像、視頻剪輯和聲音剪輯等非結構化數據。

LOB數據類型可存儲最大 4GB的數據。

LOB 類型包括:

BLOB 將大型二進制對象存儲在數據庫中

CLOB 將大型字符數據存儲在數據庫中

NCLOB 存儲大型UNICODE字符數據

BFILE 將大型二進制對象存儲在操作系統文件中

LOB 類型的數據庫列僅存儲定位符,該定位符指向大型對象的存儲位置

DBMS_LOB程序包用於操縱 LOB 數據

代碼示例:

  1. SET SERVEROUTPUT ON  
  2. DECLARE  
  3. clob_var CLOB;   
  4. amount INTEGER;   
  5. offset INTEGER;   
  6. output_var VARCHAR2(100);   
  7. BEGIN  
  8. SELECT chapter_text INTO clob_var   
  9. FROM my_book_text  
  10. WHERE chapter_id=5;  

amount := 24; -- 要讀取的字符數

offset := 1; -- 起始位置

  1. DBMS_LOB.READ(clob_var,amount,offset,output_var);   
  2. DBMS_OUTPUT.PUT_LINE(output_var);   
  3. END;   
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved