PLSQL 10 2 Practice
PLSQL 10 2 Practice
com
are declared only in the package body and can be referenced only by
other (public or private) constructs within the same package body.
Try It / Solve It
1. Create a package called hellofrom that contains three public procedures named proc_1, proc_2
and proc_3. Each of these procedures should use DBMS_OUTPUT.PUT_LINE() to display the
message “Hello from Proc x” where “x” is 1 or 2 or 3, as appropriate.
Also, proc_1 should call proc_2 and proc_2 should call proc_3, so you need to include a reference
to proc_2 from proc_1, and a reference to proc_3 from proc_2.
You will be making changes to this package specification and body, so make sure you save both
the specification and body in your Application Express session.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their
respective owners.
2
2. DESCRIBE the package to check that all three procedures are visible. Then, create and execute
an anonymous block which displays all three messages with only one procedure call.
Modify the hellofrom package specification (not the body) so that only proc_1 is public and proc_2 and
proc_3 are private. Recreate the package and then DESCRIBE it. What do you see?
3. What will happen if you try to run hellofrom.proc_1 now, before you make any changes to the body?
Try it.
4. What changes can you make to the package body in order for proc_1 to run successfully? Make
the changes and recreate the body.
5. Try to call each of the three procedures from anonymous blocks. What happens? Explain why
some of these calls fail.
8. Make sure you have saved the hellofrom package body code from question 1. Then try to drop just
the body. What happens? What do you see when you DESCRIBE helloform?
9. Re-create the body from your saved code. Now try to drop just the specification. What happens?
10. Name at least two advantages of enclosing these three procedures in a package.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their
respective owners.