PL/pgSQL

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

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

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

PL/pgSQL是PostgreSQL預設安裝的唯一編程語言，不過許多人都可使用，包括PL/Java、PL/Perl、PL/php、PL/Python、PL/R、PL/Ruby、PL/sh、PL/Tcl與and PL/Lua。 PostgreSQL於分析器的階段中使用 Bison ，所以很容易移植許多開放源代碼語言，以及進行代碼復用。

與PSM比較
在SQL/PSM語言由ISO標準規定，也激發了Oracle的PL/ SQL與pgPL/ SQL，因此有一些區別。 PSM的主要特性，與來自PL / pgSQL的不同Proposal: PL/pgPSM for pg9.3 , by P. Stehule; and PosgreSQL-PSM-addon Manual ：
異常處理程式的子程式（持續處理程序）；
警告可以類似一個異常來處理；
變數宣告應根據SQL查詢結果。 

參考資料

外部連結
PL/pgSQL 官方文檔
PL/pgSQL使用教學與實例

Category:SQL