PL/pgSQL
外观
![本页使用了标题或全文手工转换](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![]() | 此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
PL/pgSQL(全名:Procedural Language / PostGres Structured Query Language)是一個可載入的程式語言。為PostgreSQL的ORDBMS所支援的程序式編程語言。它非常類似於Oracle的 PL/ SQL語言。隨著PosgreSQL v9.x的發佈,開始支持一些ISO SQL/PSM的功能,例如可支持過載SQL調用函數與過程[1]。
PL/pgSQL猶如一個多功能的編程語言,比SQL支援更多的程式語句,包括使用迴圈與其它控制結構的能力。使用PL/ pgSQL語言創建的函數可以調用SQL語法,或者藉由一個 觸發器來執行動作。
PL/pgSQL的建立,是為了能夠比SQL來執行更複雜的操作與運算,同時容易使用,而且能夠受定義於伺服器所信任[2]。
PL/pgSQL是PostgreSQL預設安裝的唯一編程語言,不過許多人都可使用,包括PL/Java、PL/Perl(页面存档备份,存于互联网档案馆)、PL/php、PL/Python(页面存档备份,存于互联网档案馆)、PL/R、PL/Ruby、PL/sh、PL/Tcl(页面存档备份,存于互联网档案馆)與and PL/Lua。 PostgreSQL於分析器的階段中使用 Bison[3] ,所以很容易移植許多開放源代碼語言,以及進行代碼復用。
與PSM比較
[编辑]在SQL/PSM語言由ISO標準規定,也激發了Oracle的PL/ SQL與pgPL/ SQL,因此有一些區別。 PSM的主要特性,與來自PL / pgSQL的不同[4]:
- 異常處理程式的子程式(持續處理程序);
- 警告可以類似一個異常來處理;
- 變數宣告應根據SQL查詢結果。
參考資料
[编辑]- ^ feature T322. [2014-05-18]. (原始内容存档于2014-08-24).
- ^ PL/pgSQL - SQL Procedural Language. [2007-11-15]. (原始内容存档于2007-11-30).
- ^ 存档副本. [2014-05-18]. (原始内容存档于2014-04-22).
- ^ Proposal: PL/pgPSM for pg9.3 (页面存档备份,存于互联网档案馆), by P. Stehule; and PosgreSQL-PSM-addon Manual (页面存档备份,存于互联网档案馆)
外部連結
[编辑]- PL/pgSQL 官方文檔(页面存档备份,存于互联网档案馆)
- PL/pgSQL使用教學與實例(英文)