Home
About
Download
Documentation
Community
Developers
Support
Donate
Your account
November 14, 2024:
PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 Released!
Documentation
→
PostgreSQL 9.6
Supported Versions:
Current
(
17
) /
16
/
15
/
14
/
13
Development Versions:
devel
Unsupported versions:
12
/
11
/
10
/
9.6
/
9.5
/
9.4
/
9.3
/
9.2
/
9.1
/
9.0
/
8.4
/
8.3
/
8.2
/
8.1
/
8.0
/
7.4
/
7.3
/
7.2
/
7.1
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the
current
version, or one of the other supported versions listed above instead.
PostgreSQL 9.6.24 Documentation
Prev
Up
Next
Chapter 41.
PL/pgSQL
-
SQL
Procedural Language
Table of Contents
41.1.
Overview
41.1.1.
Advantages of Using
PL/pgSQL
41.1.2.
Supported Argument and Result Data Types
41.2.
Structure of
PL/pgSQL
41.3.
Declarations
41.3.1.
Declaring Function Parameters
41.3.2.
ALIAS
41.3.3.
Copying Types
41.3.4.
Row Types
41.3.5.
Record Types
41.3.6.
Collation of
PL/pgSQL
Variables
41.4.
Expressions
41.5.
Basic Statements
41.5.1.
Assignment
41.5.2.
Executing a Command With No Result
41.5.3.
Executing a Query with a Single-row Result
41.5.4.
Executing Dynamic Commands
41.5.5.
Obtaining the Result Status
41.5.6.
Doing Nothing At All
41.6.
Control Structures
41.6.1.
Returning From a Function
41.6.2.
Conditionals
41.6.3.
Simple Loops
41.6.4.
Looping Through Query Results
41.6.5.
Looping Through Arrays
41.6.6.
Trapping Errors
41.6.7.
Obtaining Execution Location Information
41.7.
Cursors
41.7.1.
Declaring Cursor Variables
41.7.2.
Opening Cursors
41.7.3.
Using Cursors
41.7.4.
Looping Through a Cursor's Result
41.8.
Errors and Messages
41.8.1.
Reporting Errors and Messages
41.8.2.
Checking Assertions
41.9.
Trigger Procedures
41.9.1.
Triggers on Data Changes
41.9.2.
Triggers on Events
41.10.
PL/pgSQL
Under the Hood
41.10.1.
Variable Substitution
41.10.2.
Plan Caching
41.11.
Tips for Developing in
PL/pgSQL
41.11.1.
Handling of Quotation Marks
41.11.2.
Additional Compile-time Checks
41.12.
Porting from
Oracle
PL/SQL
41.12.1.
Porting Examples
41.12.2.
Other Things to Watch For
41.12.3.
Appendix
Prev
Home
Next
Installing Procedural Languages
Up
Overview