PLSQL Language Reference-PL/SQL概覽-PL/SQL架構
PL/SQL架構
PL/SQL引擎
PL/SQL編譯和執行時系統是一個引擎,用於編譯和執行PL/SQL單元。引擎可以被安裝在資料庫中或應用程式開發工具中,例Oracle Forms。
在任何環境中,PL/SQL引擎接受有效的PL/SQL單元作為輸入。該引擎執行過程語句,而將SQL語句傳送給SQL引擎。
通常,資料庫處理PL/SQL單元。當一個應用程式開發工具處理PL/SQL單元時,它把它傳遞給本地的PL/SQL引擎。如果PL/SQL單元不包含SQL語句,則本地引擎處理整個PL/SQL單元。如果應用程式開發工具可以受益於條件和迴圈控制,這是非常有用的。例,Oracle Form應用程式通常會使用SQL語句來測試輸入域的值並進行簡單的計算。通過使用PL/SQL而不是SQL,這些應用可以避免對資料庫的呼叫。
PL/SQL單元和編譯引數
PL/SQL單元是:PL/SQL匿名塊、函式、庫、包、包體、過程、觸發器、型別、型別體。
PL/SQL單元受PL/SQL編譯引數(是一系列資料庫初始化引數)的影響。不同的PL/SQL單元,例如包規範和包體,有不同的編譯引數設定。
下表是PL/SQL編譯引數的彙總,如果想顯示針對特定的PL/SQL單元或所有PL/SQL單元的這些引數的值,可以檢視檢視ALL_PLSQL_OBJECT_SETTINGS。
plscope_settings |
控制編譯時集合、交叉引用和PL/SQL原始碼資料的儲存。 |
plsql_ccflags |
允許對每個PL/SQL單元單獨地控制條件編譯 |
plsql_code_type |
指定PL/SQL單元的編譯模式(INTERPRETED 和NATIVE) 如果plsql_optimize_level < 2: n 編譯器產生解釋程式碼,而不管plsql_code_type的設定; n 如果指定native,則編譯器警告native被忽略。 |
plsql_optimize_level |
指定編譯PL/SQL單元的優化等級。等級越高編譯器進行越多的優化。 plsql_optimize_level = 1,建議PL/SQL編譯器產生和儲存為PL/SQL偵錯程式使用的程式碼。 |
plsql_warnings |
啟用和禁止PL/SQL編譯器產生的警告資訊,並指定哪些警告資訊被顯示為錯誤。 |
nls_length_semantics |
允許使用位元組長度和字元長度語義建立char和varchar2列。 |
注意:PLSQL_DEBUG編譯引數已經不建議使用了,如果編譯PL/SQL單元進行除錯,可以設定plsql_optimize_level = 1。
上表中引數的編譯時期的值與每個PL/SQL單元的後設資料儲存在一起,這意味著當你顯式地重新編譯這些PL/SQL單元時,可以重用這些值。
儲存的PL/SQL單元是使用create or replace語句建立的,匿名塊不是儲存的PL/SQL單元。
為了顯式地重新編譯儲存的PL/SQL單元並重用它的引數值,必須使用帶有compile和reuse settings子句的alter語句。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1102567/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PLSQL Language Reference-PL/SQL概覽-PL/SQL的優點SQL
- PLSQL Language Reference-PL/SQL概覽-PL/SQL語言基礎SQL
- PLSQL Language Reference-PL/SQL概覽-PL/SQL的主要功能SQL
- PLSQL Language Reference-PL/SQL子程式-PL/SQL函式結果快取(二)SQL函式快取
- PLSQL Language Reference-PL/SQL子程式-過載子程式SQL
- PLSQL Language Reference-PL/SQL新功能-版本11.1 新功能SQL
- PLSQL Language Reference-PL/SQL新功能-版本11.2.0.1新功能SQL
- PLSQL Language Reference-PL/SQL新功能-版本11.2.0.2新功能SQL
- PLSQL Language Reference-PL/SQL語言基礎-表示式-PL/SQL表示式中的SQL函式SQL函式
- PLSQL Language Reference-PL/SQL語言基礎-詞彙單元-宣告SQL
- PLSQL Language Reference-PL/SQL語言基礎-表示式-BOOLEAN表示式SQLBoolean
- PLSQL Language Reference-PL/SQL語言基礎-表示式-短路計算SQL
- PLSQL Language Reference-PL/SQL語言基礎-詞彙單元-字面量SQL
- PLSQL Language Reference-PL/SQL子程式-子程式的副作用(side effects)SQLIDE
- PLSQL Language Reference-PL/SQL資料型別-SQL資料型別-不同的最值大小SQL資料型別
- PLSQL Language Reference-PL/SQL資料型別-SQL資料型別-使用者定義的PL/SQL子型別SQL資料型別
- PLSQL Language Reference-PL/SQL語言基礎-表示式-比較操作符SQL
- PLSQL Language Reference-PL/SQL語言基礎-表示式-邏輯操作符SQL
- PLSQL Language Reference-PL/SQL語言基礎-表示式-連線操作符SQL
- PLSQL Language Reference-PL/SQL子程式-PL/SQL函式結果快取-開啟函式結果快取SQL函式快取
- PLSQL Language Reference-PL/SQL資料型別-SQL資料型別-有限制的子型別SQL資料型別
- PLSQL Language Reference-PL/SQL資料型別-SQL資料型別-LONG和LONG RAW變數SQL資料型別變數
- PLSQL Language Reference-PL/SQL語言基礎-詞彙單元-識別符號引用SQL符號
- PLSQL Language Reference-PL/SQL子程式-過載子程式-子程式過載錯誤SQL
- PLSQL Language Reference-PL/SQL資料型別-SQL資料型別-ROWID和UROWID變數SQL資料型別變數
- PLSQL Language Reference-PL/SQL資料型別-SQL資料型別-CHAR和VARCHAR2變數SQL資料型別變數
- PLSQL Language Reference-PL/SQL語言基礎-表示式-操作符優先順序SQL
- PLSQL Language Reference-PL/SQL語言基礎-變數賦值-使用SELECT INTO賦值SQL變數賦值
- PLSQL Language Reference-PL/SQL子程式-子程式引數-子程式引數傳遞方法SQL
- PLSQL Language Referenc-PL/SQL集合和記錄-集合構造器SQL
- PLSQL Language Reference-PL/SQL語言基礎-條件編譯-條件編譯指令限制SQL編譯
- PLSQL Language Reference-PL/SQL語言基礎-條件編譯-條件編譯舉例SQL編譯
- PLSQL Language Reference-PL/SQL語言基礎-變數賦值-對BOOLEAN變數賦值SQL變數賦值Boolean
- PLSQL Language Reference-PL/SQL語言基礎-詞彙單元-分隔符、識別符號SQL符號
- PLSQL Language Reference-PL/SQL子程式-過載子程式-不可以過載的子程式SQL
- PLSQL Language Referenc-PL/SQL動態SQL-何時需要動態SQLSQL
- PLSQL Language Referenc-PL/SQL靜態SQL-自治事務(二)SQL
- PLSQL Language Referenc-PL/SQL靜態SQL-游標變數SQL變數