PL/pgSQL - SQL Procedural Language
- Table of Contents
- 39.1. Overview
-
- 39.1.1. Advantages of Using PL/pgSQL
- 39.1.2. Supported Argument and Result Data Types
- 39.2. Structure of PL/pgSQL
- 39.3. Declarations
-
- 39.3.1. Declaring Function Parameters
- 39.3.2. ALIAS
- 39.3.3. Copying Types
- 39.3.4. Row Types
- 39.3.5. Record Types
- 39.3.6. Collation of PL/pgSQL Variables
- 39.4. Expressions
- 39.5. Basic Statements
-
- 39.5.1. Assignment
- 39.5.2. Executing a Command With No Result
- 39.5.3. Executing a Query with a Single-row Result
- 39.5.4. Executing Dynamic Commands
- 39.5.5. Obtaining the Result Status
- 39.5.6. Doing Nothing At All
- 39.6. Control Structures
-
- 39.6.1. Returning From a Function
- 39.6.2. Conditionals
- 39.6.3. Simple Loops
- 39.6.4. Looping Through Query Results
- 39.6.5. Looping Through Arrays
- 39.6.6. Trapping Errors
- 39.7. Cursors
-
- 39.7.1. Declaring Cursor Variables
- 39.7.2. Opening Cursors
- 39.7.3. Using Cursors
- 39.7.4. Looping Through a Cursor's Result
- 39.8. Errors and Messages
- 39.9. Trigger Procedures
- 39.10. PL/pgSQL Under the Hood
-
- 39.10.1. Variable Substitution
- 39.10.2. Plan Caching
- 39.11. Tips for Developing in PL/pgSQL
- 39.12. Porting from Oracle PL/SQL
-
- 39.12.1. Porting Examples
- 39.12.2. Other Things to Watch For
- 39.12.3. Appendix