Stored Procedure used in PosgreSQL
description
Transcript of Stored Procedure used in PosgreSQL
![Page 1: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/1.jpg)
Professor: Dr. Shu-Ching ChenTA: Hsin-Yu Ha
Stored Procedure used in PosgreSQL
![Page 2: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/2.jpg)
What are stored proceduresA subroutine available to applications that
access a relational database system.PL/pgSQL : A loadable procedural language.
Creates functions and trigger proceduresAdds control structuresPerforms complex computationInherits all user-defined types, functionsCan be defined to be trusted by the serverEasy to use
![Page 3: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/3.jpg)
Why do we need stored procedure
One Query Wait, receive, process/computeDatabase
ServerIntern
et
Reduce roundtrips across the networkCan make security easier to manageAre precompiled
![Page 4: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/4.jpg)
Structure of PL/pgSQL
![Page 5: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/5.jpg)
Declarations (1)Declaring PL/pgSQL variable
![Page 6: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/6.jpg)
Declarations (2)Declaring PL/pgSQL variable and assigning
values
![Page 7: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/7.jpg)
Declarations (3)Declaring Function Parameters(1) directly give a name to the parameter in the command
(2) name ALIAS FOR $n;
![Page 8: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/8.jpg)
Declarations (4)Directly using argument variables
![Page 9: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/9.jpg)
Declarations (5)Attributes
%TYPE attribute
![Page 10: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/10.jpg)
Declarations (6)Attributes
%ROWTYPE attribute
![Page 11: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/11.jpg)
Comment syntax Single-line comments
Block comments
![Page 12: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/12.jpg)
Basic Statements (1)Assignment
Executing a Command with NO RESULT – PERFORM
![Page 13: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/13.jpg)
Basic Statements (2)Executing a Command with a Single-row
result
![Page 14: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/14.jpg)
Basic Statements (3)Example
![Page 15: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/15.jpg)
Basic Statements (4)
![Page 16: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/16.jpg)
Basic Statements (5)FOUND – Boolean variable
![Page 17: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/17.jpg)
Control Structures(1)RETURN expression
![Page 18: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/18.jpg)
Control Structures(2)IF statements
IF … THENIF … THEN … ELSEIF … THEN … ELSIF … THEN … ELSE
![Page 19: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/19.jpg)
Control Structures(3)CASE statements
CASE … WHEN … THEN … ELSE … END CASECASE WHEN … THEN … ELSE … END CASE
![Page 20: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/20.jpg)
Control Structures(4)LOOP
EXIT
![Page 21: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/21.jpg)
Control Structures(5)CONTINUE
WHILE
![Page 22: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/22.jpg)
Control Structures(6)FOR (Integer Variant)
![Page 23: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/23.jpg)
Control Structures(7)FOR (Looping through query results)
![Page 24: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/24.jpg)
Control Structures(8)Trapping Errors
http://www.postgresql.org/docs/9.1/static/errcodes-appendix.html#ERRCODES-TABLE
![Page 25: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/25.jpg)
Cursors (1)Declaring Cursor Variables
OPEN FOR query
![Page 26: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/26.jpg)
Cursors (2)Using Cursors
FETCH
MOVE
NEXT PRIORFIRSTLASTABSOLUTE countRELATIVE countFORWARDBACKWORD
![Page 27: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/27.jpg)
Cursors (3)Using Cursors
CLOSE
Returning Cursor
![Page 28: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/28.jpg)
Cursors (4)Looping Through a Cursor’s Result
![Page 29: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/29.jpg)
Errors and MessagesRAISE
Example
![Page 30: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/30.jpg)
ReferencePostgreSQL Manuals PostgreSQL 9.1
http://www.postgresql.org/docs/9.1/static/index.html
Practical PostgreSQLhttp://www.faqs.org/docs/ppbook/c19610.htm
![Page 31: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/31.jpg)
Stored Procedure in PgAdmin
1
2 3
![Page 32: Stored Procedure used in PosgreSQL](https://reader038.fdocuments.in/reader038/viewer/2022111903/56816258550346895dd2ac06/html5/thumbnails/32.jpg)
Stored Procedure in PgAdmin