Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.
-
date post
19-Dec-2015 -
Category
Documents
-
view
248 -
download
1
Transcript of Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.
![Page 1: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/1.jpg)
Chapter 9: Advanced SQL and PL/SQL Topics
Guide to Oracle 10g
![Page 2: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/2.jpg)
2
Lesson A Objectives
• Grant permissions to users• Work with PL/SQL stored program units• Create server-side stored program units in SQL*Plus• Use Forms Builder to create stored program units
![Page 3: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/3.jpg)
3
Granting privileges
• Syntax:GRANT privilege1, privilege2, …
ON object_name
TO user1, user2, …;
• Example 1:GRANT SELECT, ALTER
ON student
TO scott;
• Example 2: GRANT ALL
ON loc_id_sequence
TO PUBLIC;
![Page 4: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/4.jpg)
4
Revoking privileges
• Syntax:REVOKE privilege1, privilege2, …
ON object_name
FROM user1, user2, …;
• Example 1:REVOKE SELECT, ALTER
ON student
FROM scott;
• Example 2: REVOKE ALL
ON loc_id_sequence
FROM PUBLIC;
![Page 5: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/5.jpg)
5
Overview of PL/SQL Stored Program Units
• Program unit – Self-contained group of program statements that can be used within
larger program
• Anonymous PL/SQL programs– Programs that do not interact with other program units
• Stored PL/SQL program units– Programs that other programs can reference
– Programs that other DB users can execute
• Server-side program units– Stored as DB objects and execute on the DB server
• Client-side program units– Stored in the workstation’s file system & execute on the client
![Page 6: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/6.jpg)
6
Types of Oracle 10g Stored Program Units
![Page 7: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/7.jpg)
7
Creating Stored Program Units
• Procedures– Receive multiple input parameters
– Return multiple output values or return no output values
– Perform action such as inserting, updating, or deleting database records
• Functions– Receive multiple input parameters
– Always returns single output value
![Page 8: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/8.jpg)
8
Syntax to Create a Stored Program Unit Procedure
• Parameter mode– IN specifies a parameter passed as a read-only value that the receiving program cannot change
– OUT specifies a parameter passed as a write-only value that can appear only on the left side of an assignment statement in the program unit
– IN OUT specifies a parameter that is passed and whose value can be changed within the receiving program unit.
![Page 9: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/9.jpg)
9
Creating a Stored Procedure in SQL*Plus
![Page 10: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/10.jpg)
10
Calling a Stored Procedure
• Execute directly from SQL*Plus command line• Create separate PL/SQL program that contains
– Command to call stored procedure
– Passes parameter values to procedure
• Calling stored procedure from SQL*Plus command line:EXECUTE procedure_name
(parameter1_value, parameter2_value, ...);
![Page 11: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/11.jpg)
11
Calling a Stored Procedure (continued)
• Variables passed for each parameter– Must be in same order as parameters appear in parameter
declarations list
• Calling stored procedure from separate PL/SQL program– Similar to calling stored procedure from SQL*Plus
command line
– Omit EXECUTE commandupdate_enrollment_grade(MA100, 12, B);
![Page 12: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/12.jpg)
12
Creating a Stored Program Unit Function
• Use CREATE OR REPLACE FUNCTION
![Page 13: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/13.jpg)
13
Creating a Stored Program Unit Function
![Page 14: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/14.jpg)
14
Calling a Function
• Syntax:variable_name := function_name(parameter1, parameter2, ...);
• Variables passed for parameter values– Must be in same order as parameters appear in
function declaration
![Page 15: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/15.jpg)
15
Using Forms Builder to Create Stored Procedures and Functions
• Create and test program unit within form• Save as stored program unit in database schema• Advantage of using Forms Builder
– Provides enhanced development and debugging environment
– PL/SQL Editor
![Page 16: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/16.jpg)
16
Creating, Testing, and Saving a Stored Program Unit Procedure in
Forms Builder• Create stored procedure in test form• Create form trigger to test program unit procedure• Save program unit as stored procedure in database• Database Objects node
– Contains child nodes that represent every database user
![Page 17: Chapter 9: Advanced SQL and PL/SQL Topics Guide to Oracle 10g.](https://reader035.fdocuments.in/reader035/viewer/2022081421/56649d395503460f94a12960/html5/thumbnails/17.jpg)
17
Creating, Testing, and Saving a Stored Program Unit Function inForms Builder (continued)
• Create program unit function in Forms Builder• Test program unit function• Save program unit form as stored program unit in
database
Show how to use Ch9ATest_PROCEDURE.fmb and
Ch9ATest_FUNCTION.fmb