Search icon
Subscription
0
Cart icon
Close icon
You have no products in your basket yet
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Oracle Database 11gR2 Performance Tuning Cookbook

You're reading from  Oracle Database 11gR2 Performance Tuning Cookbook

Product type Book
Published in Jan 2012
Publisher Packt
ISBN-13 9781849682602
Pages 542 pages
Edition 1st Edition
Languages
Author (1):
Ciro Fiorillo Ciro Fiorillo
Profile icon Ciro Fiorillo

Table of Contents (21) Chapters

Oracle Database 11gR2 Performance Tuning Cookbook
Credits
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Preface
1. Starting with Performance Tuning 2. Optimizing Application Design 3. Optimizing Storage Structures 4. Optimizing SQL Code 5. Optimizing Sort Operations 6. Optimizing PL/SQL Code 7. Improving the Oracle Optimizer 8. Other Optimizations 9. Tuning Memory 10. Tuning I/O 11. Tuning Contention Dynamic Performance Views A Summary of Oracle Packages Used for Performance Tuning Index

Passing values with NOCOPY (or not)


In programming languages, we can pass parameters by reference and by value to a function. In this recipe, we will see how to make out this difference in PL/SQL functions and procedures.

How to do it...

The following steps will demonstrate passing parameters to functions:

  1. Connect to the SH schema:

    CONNECT sh@TESTDB/sh
    
  2. Create the type TAB_NUMBERS, which is a table of numbers:

    CREATE OR REPLACE TYPE sh.TAB_NUMBERS AS TABLE OF NUMBER;
    
  3. Create a function called MY_VALUE, which returns an element of an array:

    CREATE OR REPLACE FUNCTION MY_VALUE(ATABLE IN OUT TAB_NUMBERS,
     AIND IN NUMBER) RETURN NUMBER
    IS
      L_VALUE NUMBER := 0;
    BEGIN
      L_VALUE := ATABLE(AIND);
      RETURN L_VALUE;
    END;
    /
    
  4. Create the function MY_VALUE_NOCOPY, which acts as the previous one, but the array parameter is defined as NOCOPY:

    CREATE OR REPLACE FUNCTION MY_VALUE_NOCOPY(
     ATABLE IN OUT NOCOPY TAB_NUMBERS,
     AIND IN NUMBER) RETURN NUMBER
    IS
      L_VALUE NUMBER := 0;
    BEGIN
      L_VALUE := ATABLE(AIND)...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}