PL/pgSQL(全名:Procedural Language / PostGres Structured Query Language)是一個可載入的程式語言。為PostgreSQL的ORDBMS所支援的程序式編程語言。它非常類似於Oracle PL/ SQL語言。隨著PosgreSQL v9.x的發佈,開始支持一些ISO SQL/PSM英语SQL/PSM的功能,例如可支持過載SQL調用函數與過程[1]

PL/pgSQL猶如一個多功能的編程語言,比SQL支援更多的程式語句,包括使用迴圈與其它控制結構的能力。使用PL/ pgSQL語言創建的函數可以調用SQL語法,或者藉由一個 觸發器來執行動作。

PL/pgSQL的建立,是為了能夠比SQL來執行更複雜的操作與運算,同時容易使用,而且能夠受定義於伺服器所信任[2]

PL/pgSQL是PostgreSQL預設安裝的唯一編程語言,不過許多人都可使用,包括PL/JavaPL/Perl页面存档备份,存于互联网档案馆)、PL/phpPL/Python页面存档备份,存于互联网档案馆)、PL/RPL/RubyPL/shPL/Tcl页面存档备份,存于互联网档案馆)與and PL/Lua。 PostgreSQL於分析器的階段中使用 Bison[3] ,所以很容易移植許多開放源代碼語言,以及進行代碼復用

與PSM比較

SQL/PSM語言由ISO標準規定,也激發了Oracle的PL/ SQL與pgPL/ SQL,因此有一些區別。 PSM的主要特性,與來自PL / pgSQL的不同[4]

  • 異常處理程式的子程式(持續處理程序);
  • 警告可以類似一個異常來處理;
  • 變數宣告應根據SQL查詢結果。

參考資料

  1. ^ feature T322. [2014-05-18]. (原始内容存档于2014-08-24). 
  2. ^ PL/pgSQL - SQL Procedural Language. [2007-11-15]. (原始内容存档于2007-11-30). 
  3. ^ 存档副本. [2014-05-18]. (原始内容存档于2014-04-22). 
  4. ^ Proposal: PL/pgPSM for pg9.3页面存档备份,存于互联网档案馆), by P. Stehule; and PosgreSQL-PSM-addon Manual页面存档备份,存于互联网档案馆

外部連結