StoredProcedure

advertisement
Stored Procedure used in PosgreSQL
Professor: Dr. Shu-Ching Chen
TA: Hsin-Yu Ha
What are stored procedures
 A subroutine available to applications that access a relational
database system.
 PL/pgSQL : A loadable procedural language.
 Creates functions and trigger procedures
 Adds control structures
 Performs complex computation
 Inherits all user-defined types, functions
 Can be defined to be trusted by the server
 Easy to use
Why do we need stored procedure
One Query
Internet
Database
Server
Wait, receive, process/compute
 Reduce roundtrips across the network
 Can make security easier to manage
 Are precompiled
Structure of PL/pgSQL
Declarations (1)
 Declaring PL/pgSQL variable
Declarations (2)
 Declaring PL/pgSQL variable and assigning values
Declarations (3)
 Declaring Function Parameters
(1) directly give a name to the parameter in the command
(2) name ALIAS FOR $n;
Declarations (4)
 Directly using argument variables
Declarations (5)
 Attributes
 %TYPE attribute
Declarations (6)
 Attributes
 %ROWTYPE attribute
Comment syntax
 Single-line comments
 Block comments
Basic Statements (1)
 Assignment
 Executing a Command with NO RESULT – PERFORM
Basic Statements (2)
 Executing a Command with a Single-row result
Basic Statements (3)
 Example
Basic Statements (4)
Basic Statements (5)
 FOUND – Boolean variable
Control Structures(1)
 RETURN expression
Control Structures(2)
 IF statements
 IF … THEN
 IF … THEN … ELSE
 IF … THEN … ELSIF … THEN … ELSE
Control Structures(3)
 CASE statements
 CASE … WHEN … THEN … ELSE … END CASE
 CASE WHEN … THEN … ELSE … END CASE
Control Structures(4)
 LOOP
 EXIT
Control Structures(5)
 CONTINUE
 WHILE
Control Structures(6)
 FOR (Integer Variant)
Control Structures(7)
 FOR (Looping through query results)
Control Structures(8)
 Trapping Errors
 http://www.postgresql.org/docs/9.1/static/errcodes-
appendix.html#ERRCODES-TABLE
Cursors (1)
 Declaring Cursor Variables
 OPEN FOR query
Cursors (2)
 Using Cursors
 FETCH
 MOVE
NEXT
PRIOR
FIRST
LAST
ABSOLUTE count
RELATIVE count
FORWARD
BACKWORD
Cursors (3)
 Using Cursors
 CLOSE
 Returning Cursor
Cursors (4)
 Looping Through a Cursor’s Result
Errors and Messages
 RAISE
 Example
Reference
 PostgreSQL Manuals PostgreSQL 9.1
 http://www.postgresql.org/docs/9.1/static/index.html
 Practical PostgreSQL
 http://www.faqs.org/docs/ppbook/c19610.htm
Stored Procedure in PgAdmin
2
1
3
Stored Procedure in PgAdmin
Download