PL/SQL, the Oracle procedural extension of SQL, is a portable, high-performance transaction-processing language
PL / SQL對SQL的一種補充,是一種可移植的高性能交易處理語言。
優點:
- 輕量集成
- 高性能
- 便捷
- 可拓展性
- 可管理
- 面向對象編程
特徵:
- PL/SQL combines the data-manipulating power of SQL with the processing power of procedural languages.
- When you can solve a problem with SQL, you can issue SQL statements from your PL/SQL program, without learning new APIs
- PL/SQL lets you declare constants and variables, control program flow, define subprograms, and trap runtime errors.
- You can break complex problems into easily understandable subprograms, which you can reuse in multiple applications.
解析:
- 在SQL(數據處理)基礎上增加了過程處理的能力,這是邁向高級語言編程的重要指標。
- 強調兼容性,可以在PL/SQL中毫不客氣地使用SQL語句。
- 強調分治思想,可以將複雜的過程拆分成多個子過程,並讓子過程有效的溝通。
基本特性:
- Error Handling:錯誤處理,使用Exception去捕獲異常
- Block:編程單元(塊)
- Variables and Constants:變量和常量
- Subprograms:子程序
- Package:執行單元,可以理解成一個應用程序
- Triggers:觸發器,響應在數據庫中發生的事件
- Input and Output:取決於執行邏輯
- Data Abstraction:對數據進行抽象,可以理解成數據結構
- Cursors:指向私有的SQL域,例如可以查詢這個語句有多少行收到影響
- Composite Variables:可以理解成列表和數組,指具有內部組件的變量
- Using the %ROWTYPE and %TYPE Attribute
- %TYPE:爲了達到和參照變量一致的數據類型,同時不用修改PL/SQL代碼的需求
- %ROWTYPE:讓你聲明一條代表數據庫中表或視圖全部或部分行的記錄
執行引擎流程:
- 分別給SQL語句執行器和程序語句執行器來解析執行