330 likes | 487 Views
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
E N D
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 • Reduce roundtrips across the network • Can make security easier to manage • Are precompiled Internet Wait, receive, process/compute One Query Database Server
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 (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) NEXT PRIOR FIRST LAST ABSOLUTE count RELATIVE count FORWARD BACKWORD • Using Cursors • FETCH • MOVE
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