程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> PL/SQL用戶指南與參考

PL/SQL用戶指南與參考

編輯:關於SqlServer



第一章 PL/SQL一覽

一、理解PL/SQL的主要特性

1、塊結構

2、變量與常量

3、游標

4、游標FOR循環

5、游標變量

6、屬性

7、控制結構

8、模塊化

9、數據抽象

10、信息隱藏

11、錯誤控制

二、PL/SQL架構

1、Oracle數據庫中

2、Oracle工具中

三、PL/SQL的優勢

1、SQL的支持

2、面向對象的支持

3、良好的性能

4、高效性

5、可移植性

6、與SQL緊密結合

7、高度安全


第二章 PL/SQL基礎

一、字符集

二、詞法單元

1、分隔符

2、標識符

3、文字

4、注釋

三、聲明

1、使用DEFAULT

2、使用NOT NULL

3、使用%TYPE

4、使用%ROWTYPE

5、聲明的約束

四、PL/SQL命名規范

五、PL/SQL標識符的作用域(scope)和可見度(visiblity)

六、變量賦值

1、布爾型(Boolean)賦值

2、利用SQL查詢為PL/SQL變量賦值

七、PL/SQL表達式與比較

1、邏輯操作符

2、布爾表達式

3、CASE表達式

4、在比較和條件語句中處理NULL值

八、內置函數


第三章 PL/SQL數據類型

一、預定義數據類型

1、數字型

2、字符型

3、本地字符型

4、LOB類型

5、布爾類型

6、Datetime和Interval類型

7、Datetime和Interval算法

8、使用日期和時間子類型來避免"切斷"問題

二、用戶自定義子類型

1、定義子類型

2、使用子類型

三、數據類型轉換

1、顯式轉換

2、隱式轉換

3、顯式轉換 VS 隱式轉換

4、DATE值

5、RAW和LONG RAW值


第四章 PL/SQL的控制結構

一、PL/SQL控制結構一覽

二、條件控制:IF和CASE語句

1、IF-THEN語句

2、IF-THEN-ELSE語句

3、IF-THEN-ELSIF語句

4、CASE語句

5、PL/SQL條件控制語句使用准則

三、循環控制:LOOP和EXIT語句

1、LOOP

2、WHILE-LOOP

3、FOR-LOOP

四、順序控制:GOTO和NULL語句

1、GOTO語句

2、NULL語句


第五章 PL/SQL集合與記錄

一、什麼是集合

1、理解嵌套表

2、理解變長數組

3、理解關聯數組(索引表)

4、全球化設置對使用VARCHAR2類型作主鍵的關聯數組的影響

二、集合類型的選擇

1、嵌套表與關聯數組間的選擇

2、嵌套表與變長數組間的選擇

三、定義集合類型

1、定義與PL/SQL集合類型等價的SQL類型

四、聲明PL/SQL集合變量

五、初始化與引用集合

1、引用集合中的元素

六、集合的賦值

七、比較集合

八、在SQL語句中使用PL/SQL的集合類型

1、關於嵌套表的例子

2、變長數組的一些例子

3、使用SQL語句操作特定的集合元素

九、使用多級集合

十、集合的方法

1、檢測集合中的元素是否存在(EXI

STS)

2、計算集合中的元素個數(COUNT)

3、檢測集合的最大容量(LIMIT)

4、查找集合中的首末元素(FIRST和LAST)

5、循環遍歷集合中的元素(PRIOR和NEXT)

6、擴大集合的容量(EXTEND)

7、縮減集合的空間(TRIM)

8、刪除集合中的元素(DELETE)

9、使用集合類型參數的方法

十一、避免集合異常

十二、使用集合批量綁定減少循環開銷

1、批量綁定如何提高性能

十三、使用FORALL語句

1、FORALL語句對回滾的影響

2、使用%BULK_ROWCOUNT屬性來計算FORALL語句所影響到的行數

3、使用%BULK_EXCEPTIONS屬性來控制FORALL異常

十四、利用BULK COLLECTION子句為集合賦值

1、從游標中批量取得數據的例子

2、使用LIMIT子句限制FETCH操作批量取得的數據個數

3、使用RETURNING INTO子句將DML的操作結果綁定到集合

4、BULK COLLECT的限制

5、把FORALL和BULK COLLECTION結合起來使用

6、使用主數組進行批量綁定

十五、什麼是記錄

十六、定義和聲明記錄

1、聲明記錄

2、初始化記錄

3、引用記錄

4、為記錄賦控值

5、為記錄賦值

6、比較記錄

十七、操作記錄

1、向數據庫插入PL/SQL記錄

2、使用記錄更新數據庫

3、記錄類型插入/更新操作的約束

4、用查詢結果為記錄類型的集合賦值


第六章 PL/SQL與Oracle間交互

一、PL/SQL支持的SQL一覽

1、數據操作

2、事務控制

3、SQL函數

4、SQL偽列

5、SQL操作符

二、管理游標

1、顯式游標一覽

2、隱式游標一覽

三、用包將游標的聲明和游標體分離

四、使用游標FOR循環

1、使用子查詢代替顯式游標

2、使用游標子查詢

3、在游標FOR循環中為表達式定義別名

4、為游標FOR循環傳遞參數

五、使用游標變量

1、什麼是游標變量

2、為什麼使用游標變量

3、定義REF CURSOR類型

4、聲明游標變量

5、控制游標變量

6、游標變量示例:主從表

7、游標變量示例:客戶端PL/SQL塊

8、游標變量示例:Pro*C程序

9、游標變量示例:SQL*Plus中操作主變量

10、在向PL/SQL塊傳遞主游標變量時減少網絡負荷

11、避免游標變量的錯誤

12、游標變量的限制

六、使用游標屬性

1、顯式游標屬性一覽

2、 隱式游標屬性一覽

七、使用游標表達式

1、游標表達式的約束

2、游標表達式的示例

八、PL/SQL中的事務處理一覽

1、如何用事務保護數據庫

2、使用COMMIT提交事務

3、使用ROLLBACK回滾事務

4、使用SAVEPOINT回滾部分事務

5、Oracle如何隱式回滾

6、終止事務

7、使用SET TRANSACTION設置事務屬性

8、覆蓋默認鎖

九、使用自治事務完成單個邏輯工作單元

1、自治事務的優點

2、定義自治事務

3、控制自治事務

4、使用自治觸發器

5、從SQL中調用自治函數

十、確保PL/SQL程序的向後兼容


第七章 控制PL/SQL錯誤

一、錯誤控制一覽

二、異常的優點

三、預定義PL/SQL異常

四、自定義PL/SQL異常

1、聲明PL/SQL異常

2、PL/SQL異常的作用域規則

3、把PL/SQL異常與編號關聯:編譯指示EXCEPTION_INIT

4、自定我們自己的錯誤消息:過程RAISE_APPLICATION_ERROR

5、重新聲明預定義異常

五、如何拋出PL/SQL異常

1、使用RAISE語句拋出異常

六、PL/SQL異常的傳遞

七、重新拋出PL/SQL異常

八、處理PL/SQL異常

1、聲明中控制異常

2、異常句柄中控制異常

3、異常分支

4、獲取錯誤代號與消息:SQLCODE和SQLERRM

5、捕獲未控制異常

九、PL/SQL錯誤控制技巧

1、模擬TRY..CATCH..塊

2、反復執行的事務

3、使用定位變量標記異常發生點


第八章 PL/SQL子程序

一、什麼是子程序

二、子程序的優點

三、理解PL/SQL過程

四、理解PL/SQL函數

1、使用RETURN語句

2、控制PL/SQL子程序的副影響

五、聲明PL/SQL子程序

六、子程序打包

七、形參VS實參

八、位置標示法VS名字標示法

1、使用位置標示法

2、使用名字標示法

3、使用混合標示法

九、指定子程序參數模式

1、使用IN模式

2、使用OUT模式

3、使用IN OUT模式

4、子程序參數模式總結

十、使用NOCOPY編譯提示傳遞大型數據結構

1、權衡NOCOPY所帶來的良好性能

2、NOCOPY的限制

十一、使用子程序參數的默認值

十二、理解子程序參數別名

十三、子程序的重載

1、重載的限制

十四、如何解析子程序調用

1、繼承中的重載實現

十五、使用表函數接受並返回多行結果

1、表函數一覽

2、什麼是表函數

3、什麼是管道化表函數

4、使用管道化表函數來進行轉換

5、編寫管道化表函數

6、從表函數返回結果

7、PL/SQL表函數間的數據管道化處理

8、查詢Table函數

9、優化對表函數的多次調用

10、使用游標變量傳遞數據

11、在表函數內執行DML操作

12、在表函數上執行DML操作

13、控制Table函數的異常

十六、表函數並行化處理

1、表函數的並行執行

2、輸入數據的分區

3、葉級(Leaf-level)表函數的並行執行

十七、表函數如何";流化"(Stream)傳入的數據

1、並行執行中分區與分組的選擇

十八、調用者權限VS定義者權限

1、調用者權限的優點

2、用AUTHID子句為子程序指定權限

3、執行當前子程序的用戶是誰?

4、如何解析調用者權限子程序裡的外部引用

5、覆蓋調用者權限子程序中的默認命名解析

6、授權執行調用者權限子程序

7、對調用者權限的子程序使用角色

8、在調用者權限子程序中使用視圖和數據庫觸發器

9、在調用者權限子程序中使用數據庫連接

10、在調用者權限子程序中使用對象類型

十九、理解並使用遞歸

1、什麼是遞歸子程序

2、使用相互遞歸

3、遞歸VS迭代

二十、調用外部子程序

二十一、使用PL/SQL Server Page創建動態網頁


第九章 PL/SQL包

一、什麼是PL/SQL包

1、PL/SQL包舉例

二、PL/SQL包的優點

三、理解包說明

1、引用包的內容

四、理解包體

五、包特性的例子

六、包中私有項和公有項

七、重載包級子程序

八、包STANDARD是如何定義PL/SQL環境的

九、系統包一覽

1、關於DBMS_ALERT包

2、關於DBMS_OUTPUT包

3、關於DBMS_PIPE包

4、關於UTL_FILE包

5、關於UTL_HTTP包

十、包編寫准則


第十章 PL/SQL對象類型

一、抽象的角色

二、什麼是對象類型

三、為什麼使用對象類型

四、對象類型的結構

五、對象類型組件

1、屬性

2、方法

3、更改已存在對象類型的屬性和方法

六、定義對象類型

1、PL/SQL類型繼承一覽

2、對象類型實例:棧

3、對象類型實例:售票處

4、對象類型實例:銀行賬戶

5、對象類型實例:實數

七、聲明並初始化對象

1、定義對象

2、初始化對象

3、PL/SQL如何對待未初始化對象

八、訪問屬性

九、定義構造函數

十、調用構造函數

十一、調用方法

十二、通過REF修飾符共享對象

1、向前類型定義

十三、操作對象

1、查詢對象

2、插入對象

3、更新對象

4、刪除對象


第十一章 本地動態SQL

一、什麼是動態SQL

二、動態SQL的需求

三、使用EXECUTE IMMEDIATE語句

1、動態SQL實例

2、USING子句的向後兼容

3、指定參數模式

四、使用OPEN-FOR、FETCH和CLOSE語句

1、打開游標變量

2、從游標變量取得數據

3、關閉游標變量

4、記錄,集合和對象類型的動態SQL舉例

五、使用批量動態SQL

1、動態批量綁定語法

2、動態批量綁定實例

六、動態SQL的技巧與陷阱

1、改善性能

2、讓過程對任意模式對象起作用

3、使用重復占位符

4、使用游標屬性

5、傳遞空值

6、遠程操作

7、使用調用者權限

8、使用RESTRICT_REFERENCES

9、避免死鎖


第十二章 PL/SQL應用程序性能調優

一、PL/SQL性能問題的原由

二、確定PL/SQL的性能問題

1、Profiler API:DBMS_PROFILER包

2、Trace API:包DBMS_TRACE

三、PL/SQL性能優化特性

1、使用本地動態SQL優化PL/SQL

2、使用批量綁定優化PL/SQL

3、使用NOCOPY編譯器提示優化PL/SQL

4、使用RETURNING子句優化PL/SQL

5、使用外部程序優化PL/SQL

6、使用對象類型和集合優化PL/SQL

7、編譯本地執行的PL/SQL代碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved