Services
  • 24×7×365 Technical Support
  • Migration to PostgreSQL
  • High Availability Deployment
  • Database Audit
  • Remote DBA for PostgreSQL
Products
  • Postgres Pro Enterprise
  • Postgres Pro Standard
  • Cloud Solutions
  • Postgres Extensions
Resources
  • Blog
  • Documentation
  • Webinars
  • Videos
  • Presentations
Community
  • Events
  • Training Courses
  • Books
  • Demo Database
  • Mailing List Archives
About
  • Leadership team
  • Partners
  • Customers
  • In the News
  • Press Releases
  • Press Info

Facebook
Postgres Pro
  • Services
    24×7×365 Technical Support Migration to PostgreSQL High Availability Deployment Database Audit Remote DBA for PostgreSQL
  • Products
    Postgres Pro Enterprise Postgres Pro Standard Cloud Solutions Postgres Extensions
  • Resources
    Blog Documentation Webinars Videos Presentations
  • Community
    Events Training Courses Books Demo Database Mailing List Archives
  • About
    Leadership team Partners Customers In the News Press Releases Press Info
Facebook
Downloads
Chapter 40. PL/pgSQL - SQL Procedural Language
Prev UpPart V. Server ProgrammingHome Next

Chapter 40. PL/pgSQL - SQL Procedural Language

Table of Contents

40.1. Overview
40.1.1. Advantages of Using PL/pgSQL
40.1.2. Supported Argument and Result Data Types
40.2. Structure of PL/pgSQL
40.3. Declarations
40.3.1. Declaring Function Parameters
40.3.2. ALIAS
40.3.3. Copying Types
40.3.4. Row Types
40.3.5. Record Types
40.3.6. Collation of PL/pgSQL Variables
40.4. Expressions
40.5. Basic Statements
40.5.1. Assignment
40.5.2. Executing a Command With No Result
40.5.3. Executing a Query with a Single-row Result
40.5.4. Executing Dynamic Commands
40.5.5. Obtaining the Result Status
40.5.6. Doing Nothing At All
40.6. Control Structures
40.6.1. Returning From a Function
40.6.2. Conditionals
40.6.3. Simple Loops
40.6.4. Looping Through Query Results
40.6.5. Looping Through Arrays
40.6.6. Trapping Errors
40.6.7. Obtaining Execution Location Information
40.7. Cursors
40.7.1. Declaring Cursor Variables
40.7.2. Opening Cursors
40.7.3. Using Cursors
40.7.4. Looping Through a Cursor's Result
40.8. Errors and Messages
40.8.1. Reporting Errors and Messages
40.8.2. Checking Assertions
40.9. Trigger Procedures
40.9.1. Triggers on Data Changes
40.9.2. Triggers on Events
40.10. PL/pgSQL Under the Hood
40.10.1. Variable Substitution
40.10.2. Plan Caching
40.11. Tips for Developing in PL/pgSQL
40.11.1. Handling of Quotation Marks
40.11.2. Additional Compile-time Checks
40.12. Porting from Oracle PL/SQL
40.12.1. Porting Examples
40.12.2. Other Things to Watch For
40.12.3. Appendix

Prev Up Next
39.1. Installing Procedural Languages Home 40.1. Overview
epub pdf

This page in other versions:

Postgres Pro Standard 17
Postgres Pro Standard 16
Postgres Pro Standard 15
Postgres Pro Standard 14
Postgres Pro Standard 13
Postgres Pro Standard 12
Postgres Pro Standard 11
Postgres Pro Standard 10
Postgres Pro Standard 9.6
Postgres Pro Standard 9.5
Postgres Pro Enterprise 17
Postgres Pro Enterprise 16
Postgres Pro Enterprise 15
Postgres Pro Enterprise 14
Postgres Pro Enterprise 13
Postgres Pro Enterprise 12
Postgres Pro Enterprise 11
Postgres Pro Enterprise 10
Postgres Pro Enterprise 9.6
PostgreSQL 17
PostgreSQL 16
PostgreSQL 15
PostgreSQL 14
PostgreSQL 13
PostgreSQL 12
PostgreSQL 11
PostgreSQL 10
PostgreSQL 9.6
PostgreSQL 9.5
PostgreSQL 9.4
Есть вопросы? Напишите нам!

Соглашаюсь с условиями обработки персональных данных



✖
×
Postgres Pro Standard 17 Postgres Pro Standard 16 Postgres Pro Standard 15 Postgres Pro Standard 14 Postgres Pro Standard 13 Postgres Pro Standard 12 Postgres Pro Standard 11 Postgres Pro Standard 10 Postgres Pro Standard 9.6 Postgres Pro Standard 9.5
Postgres Pro Enterprise 17 Postgres Pro Enterprise 16 Postgres Pro Enterprise 15 Postgres Pro Enterprise 14 Postgres Pro Enterprise 13 Postgres Pro Enterprise 12 Postgres Pro Enterprise 11 Postgres Pro Enterprise 10 Postgres Pro Enterprise 9.6
PostgreSQL 17 PostgreSQL 16 PostgreSQL 15 PostgreSQL 14 PostgreSQL 13 PostgreSQL 12 PostgreSQL 11 PostgreSQL 10 PostgreSQL 9.6 PostgreSQL 9.5 PostgreSQL 9.4
Go to PostgreSQL 9.5
Services
  • 24×7×365 Technical Support
  • Migration to PostgreSQL
  • High Availability Deployment
  • Database Audit
  • Remote DBA for PostgreSQL
Products
  • Postgres Pro Enterprise
  • Postgres Pro Standard
  • Cloud Solutions
  • Postgres Extensions
Resources
  • Blog
  • Documentation
  • Webinars
  • Videos
  • Presentations
Community
  • Events
  • Training Courses
  • Books
  • Demo Database
  • Mailing List Archives
About
  • Leadership team
  • Partners
  • Customers
  • In the News
  • Press Releases
  • Press Info
Products
  • Postgres Pro Enterprise
  • Postgres Pro Standard
  • Cloud Solutions
  • Postgres Extensions
Resources
  • Blog
  • Documentation
  • Webinars
  • Videos
  • Presentations
Services
  • 24×7×365 Technical Support
  • Migration to Postgres
  • High Availability Deployment
  • Database Audit
  • Remote DBA for PostgreSQL
Community
  • Events
  • Training Courses
  • Intro Book
  • Demo Database
  • Mailing List Archives
About
  • Leadership team
  • Partners
  • Customers
  • In the News
  • Press Releases
  • Press Info
Contacts
  • Neptune House, Marina Bay, office 207, Gibraltar, GX11 1AA
  • info@postgrespro.com
  • Facebook
Get in touch!



© Postgres Professional Europe Limited, 2015 — 2025
EULA EULA for Cloud Environments Privacy Policy GDPR Compliance Commitment
© Postgres Professional Europe Limited, 2015 — 2025
EULA
EULA for Cloud Environments
Privacy Policy
GDPR Compliance Commitment
By continuing to browse this website, you agree to the use of cookies. Go to Privacy Policy.