พีแอล/พีจีเอสเค
| พีแอล/พีจีเอสเค | |
|---|---|
| ออกแบบ โดย | แยน วีค |
| นักพัฒนา | กลุ่มพัฒนา PostgreSQL ระดับโลก |
| ปรากฏครั้งแรก | 30 ตุลาคม 2541 |
| เว็บไซต์ | www.postgresql.org/docs/current/static/plpgsql.html |
| ได้รับอิทธิพลจาก | |
| PL/SQL , Ada | |
PL/pgSQL ( Procedural Language/PostgreSQL ) เป็นภาษาการเขียนโปรแกรมเชิงขั้นตอน ที่ได้รับการสนับสนุนโดยPostgreSQL ORDBMSมีลักษณะคล้ายคลึงกับ ภาษา PL/SQLของOracle Jan Wieck เป็นผู้เขียน PL/pgSQL และปรากฏครั้งแรกใน PostgreSQL 6.4 ซึ่งวางจำหน่ายเมื่อวันที่ 30 ตุลาคม พ.ศ. 2541 [ 1 ]เวอร์ชัน 9 ยังนำคุณสมบัติ ISO SQL/PSM บางอย่างมาใช้ เช่น การโอเวอร์โหลดฟังก์ชันและขั้นตอนที่เรียกใช้ด้วย SQL [ 2 ]
PL/pgSQL เป็นภาษาโปรแกรมที่มีคุณสมบัติครบถ้วน ช่วยให้สามารถควบคุมกระบวนการทำงานได้มากกว่าSQLรวมถึงความสามารถในการใช้ลูปและโครงสร้างควบคุมอื่นๆ คำสั่งและทริกเกอร์ ของ SQL สามารถเรียกใช้ฟังก์ชันที่สร้างขึ้นในภาษา PL/pgSQL ได้
การออกแบบ PL/pgSQL มีเป้าหมายเพื่อให้ผู้ใช้ PostgreSQL สามารถดำเนินการและคำนวณที่ซับซ้อนกว่า SQL ได้ ในขณะเดียวกันก็ใช้งานง่าย ภาษาดังกล่าวสามารถกำหนดให้เซิร์ฟเวอร์เชื่อถือได้[ 3 ]
PL/pgSQL เป็นหนึ่งในภาษาโปรแกรมที่รวมอยู่ในชุดการแจกจ่าย PostgreSQL มาตรฐาน[ 4 ]ภาษาอื่นๆ ได้แก่PL/Tcl , PL/Perl [ 5 ]และ PL/Python [ 6 ]นอกจากนี้ยังมีภาษาอื่นๆ อีกมากมายจากบุคคลที่สาม ได้แก่ PL/Java [ 7 ] PL/pgPSM [ 8 ] PL/php [ 9 ] PL/R [ 10 ] PL/Ruby [ 11 ] PL/sh , PL/Lua , Postmodern [ 12 ] (อิงตามCommon Lisp ) และPL/v8 PostgreSQL ใช้Bisonเป็นตัวแยกวิเคราะห์[ 13 ] ทำให้ง่ายต่อการพอร์ต ภาษา โอเพนซอร์ส หลาย ภาษา รวมถึงการนำโค้ดกลับมาใช้ใหม่
เมื่อเปรียบเทียบกับ PSM
ภาษา SQL /PSMได้รับการกำหนดโดยมาตรฐาน ISO แต่ก็ได้รับแรงบันดาลใจจาก PL/SQL และ PL/pgPL/SQL ของ Oracle ด้วย ดังนั้นจึงมีความแตกต่างเพียงเล็กน้อย โมดูล PL/pgPSM ที่ได้รับการสนับสนุนจะนำมาตรฐานนี้ไปใช้ คุณสมบัติหลักของ PSM ที่แตกต่างจาก PL/pgSQL ได้แก่: [ 8 ] [ 14 ]
- ตัวจัดการข้อยกเว้นเป็นซับรูทีน (ตัวจัดการการดำเนินการต่อ);
- คำเตือนสามารถจัดการได้ในรูปแบบของข้อยกเว้น
- การประกาศตัวแปรควรขึ้นอยู่กับผลลัพธ์ของคำสั่ง SQL
ภาษาทั้งสามภาษา (Oracle PL/SQL, [ 15 ] PostgreSQL PL/pgSQL และ ISO SQL/PSM [ 16 ] ) ได้รับอิทธิพลอย่างมากจาก ภาษาการ เขียนโปรแกรม Ada
ตัวอย่าง
ตัวอย่างต่อไปนี้เป็นฟังก์ชันที่คำนวณภาษีขายของยอดรวมย่อยที่กำหนด:
สร้างฟังก์ชันsales_tax ( subtotal real ) RETURNS real AS $$ BEGIN RETURN subtotal * 0.06 ; END ; $$ LANGUAGE plpgsql ;ลิงก์ภายนอก
- เอกสารอย่างเป็นทางการของ PL/pgSQL