\r\n
PART I Language Syntax \r\n\r\n1 Overview of PL/SQL\r\n\r\nAn Introduction to the PL/SQL Language\r\nPL/SQL Syntax Fundamentals\r\nStatements\r\nIdentifiers\r\nComments\r\nLiterals\r\nDeclaration Section\r\nVariables\r\nDatatypes\r\nConstants\r\nOther Declared Elements\r\nProcessing Section\r\nExpressions\r\nAssignment Statements\r\nConditional Stateents\r\nLoops\r\nCursors\r\nImplicit Cursors\r\nExplicit Cursors\r\nCursor Attributes\r\nLoops Revisited:The Cursor FOR Loop\r\nAdvanced Datatype Declaration\r\n%TYPE\r\n%ROWTYPE\r\nException-Handling Section\r\nSystem-Defined Exceptions\r\nUser-Defined Exceptions\r\nWorking with Blocks\r\nNested Blocks\r\nScope:Declared Elements\r\nException Scope and Exception Propagation\r\nAn Introduction to Program Units\r\nAnonymous Blocks\r\nNamed Program Units\r\nChapter Summary\r\nTwo-Minute Drill\r\nChapter Questions\r\nAnswers to Chapter Quetions\r\n\r\n2 Procedures\r\n\r\nUses of Procedures\r\nWhat Can You Do with Procedures?\r\nWhere Can You Store Procedures?\r\nCreating,Altering,and Dropping Procedures\r\nCreating Procedures\r\nAltering Procedures\r\nDropping Procedures\r\nInvoking Procedures\r\nExecuting a Procedure from a PL/SQL Block\r\nExecuting a Procedure from the SQL*Plus Command Line\r\nParameters\r\nParameter Declaration Syntax\r\nParameter Datatypes\r\nDefault Values\r\nParameter Types\r\nPositional Notation versus Named Notation\r\nData Dictionary Resources for Procedures\r\nUSER_OBJECTS\r\nUSER_OBJECT_SIZE\r\nUSER_SOURCE\r\nUSER_ERRORS\r\nSHOW ERRORS\r\nChapter Summary\r\nTwo-Minute Drill\r\nChapter Questions\r\nAnswers to Chapter Quetions\r\n\r\n3 Functions\r\n\r\nUses of Functions\r\nFunctions versus Procedures\r\nCreating,Altering,and Dropping Functions\r\nCreating Functions\r\nAltering Functions\r\nDropping Functions\r\nInvoking Functions\r\nFunctions Called from PL/SQL Expressions\r\nFunctions Called from SQL Statements\r\nClient-Side Functions\r\nParameters\r\nPassing Parameters by Reference\r\nRETURN\r\nChapter Summary\r\nTwo-Minute Drill\r\nChapter Questions\r\nAnswers to Chapter Quetions\r\n\r\n4 Packages\r\n\r\nUses of Packages\r\nCreating,Altering,and Dropping Packages\r\nCreating a Package Specification\r\nCreating a Package Body\r\nPublic versus Private Constructs\r\nGlobal Constructs\r\nAltering a Package\r\nDropping a Package\r\nChanges to a Package Specification that Require a Change to the Body\r\nInvoking Packaged Constructs\r\nReferencing Packaged Constructs\r\nUsing Packaged Constructs\r\nData Dictionary Resources for Packages\r\nChapter Summary\r\nTwo-Minute Drill\r\nChapter Questions\r\nAnswers to Chapter Quetions\r\n\r\n5 Triggers\r\n\r\nUses of Triggers\r\nCreating,Altering,and Dropping Triggers\r\nCreating Triggers\r\nThe:old and:new Qualifiers\r\nConditional Predicates\r\nFiring Rules\r\nRestrictions\r\nAltering Triggers\r\nDropping Triggers\r\nEnabling and Disabling Triggers\r\nDisabling and Enabling a Named Trigger\r\nEnabling and Disabling a Named Tables’s Triggers\r\nINSTEAD OF Triggers\r\nNon-DML Triggers\r\nDDL Triggers\r\nData Dictionary Resources for Triggers\r\nUSER_TRIGGERS\r\nChapter Summary\r\nTwo-Minute Drill\r\nChapter Questions\r\nAnswers to Chapter Quetions\r\n\r\n6 Working with Program Units\r\n\r\nClient-Side versus Server-Side Program Units\r\nInvoking Server-Side Program Units\r\nInvoking Client-Side Program Units\r\nThe Trade-of—Where to Put Them?\r\nLocal Subprograms\r\nForward Declarations\r\nOverloading \r\nCreating Overloaded Modules\r\nNamespaces for Program Units\r\nInitializing Variables with a One-Time-Only Procedure\r\nFunctions and Purity Levels\r\nWNDS and RNDS\r\nWNPS and RNPS\r\nTRUST\r\nPurity Levels for the Package Initialization Section\r\nDEFAULT\r\nThe Benefits of PRAGMA\r\nPersistent States\r\nPersistent Variables and Constants\r\nPersistent Tables,Records,and Types\r\nPersistent Cursors\r\nChapter Summary\r\nTwo-Minute Drill\r\nChapter Questions\r\nAnswers to Chapter Quetions\r\n\r\n7 Working with Oracle's PL/SQL Packages\r\n\r\nDBMS_OUTPUT\r\nSET SERVEROUTPUT ON\r\nENABLE and DISABLE\r\nPUT_LINE,PUT,and NEW_LINE\r\nGET_LINE and GET_LINES\r\nDBMS_JOB\r\nJOB_QUEUE_PROCESSES and JOB_QUEUE_INTERVAL\r\nThe SUBMIT Procedure\r\nThe REMOVE Procedure\r\nThe RUN Procedure\r\nThe CHANGE,NEXT_DATE,WHAT,KINTERVAL,and INSTANCE Procedures\r\nOther Procedures:USER_EXPORT,BROKEN,and ISUBMIT\r\nMonitoring Batch Jobs with USER_JOBS\r\nDBMS_DDL\r\nThe ALTER_COMPILE Procedure\r\nThe ANALYZE_OBJECT Procedure\r\nMonitoring the Results of ALTER_COMPILE and ANALYZE_OBJECT\r\nDBMS_PIPE\r\nThe PACK_MESSAGE Procedure\r\nThe SEND_MESSAGE Procedure\r\nThe RECEIVE_MESSAGE Procedure\r\nThe NEXT_ITEM_TYPE Procedure\r\nThe UNPACK_MESSAGE Procedure\r\nOther Procedures\r\nDBMS_SQL\r\nThe OPEN_CURSOR Function and the CLOSE_CURSOR Procedure\r\nThe PARSE Procedure\r\nThe DEFINE_CONLUMN Procedure\r\nThe EXECUTE Function\r\nThe FETCH_ROWS Function\r\nThe COLUMN_VALUE Procedure\r\nThe BIND_VARIABLE Procedure\r\nNative Dynamic SQL\r\nCompilation Errors\r\nChapter Summary\r\nTwo-Minute Drill\r\nChapter Questions\r\nAnswers to Chapter Quetions\r\n\r\nPATR II Development Tools\r\n\r\n8 Using Oracle PL/SQL Tools\r\n\r\nSQL*Plus\r\nThe SQL*Plus Buffer Editor\r\nUsing Text Editors\r\nExecuting Text Files\r\nPL/SQL Blocks and the Buffer\r\nProcedure Builder\r\nObject Navigator\r\nCreating a Program Unit with Procedure Builder\r\nExecuting a Program Unit\r\nMoving Program Units\r\nWorking with Libraries\r\nCreating Database Triggers\r\nChapter Summary\r\nTwo-Minute Drill\r\nChapter Questions\r\nAnswers to Chapter Quetions\r\n\r\n9 Debugging PL/SQL\r\n\r\nDebugging Concepts\r\nDebugging Techniques\r\nCode Formatting:An Example\r\nDebugging Tools\r\nDebugging with SQL*Plus\r\nDebugging Compilation Errors with SQL*Plus\r\nSHOW ERROR\r\nDebugging Execution Error in SQL*Plus\r\nDebugging with Procedure Builder\r\nStarting Debugging:Setting Breakpoints\r\nChapter Summary\r\nTwo-Minute Drill\r\nChapter Questions\r\nAnswers to Chapter Quetions\r\n\r\nPART III Privileges and Interdependence\r\n\r\n10 Managing Privileges\r\n\r\nSystem Privileges\r\nRoles\r\nSystem and Object Privilege Requirements for Program Units\r\nSystem Privileges for Program Units\r\nObject Privileges for Program Units\r\nOwner and Invoker Rights\r\nOwner Rights\r\nInvoker Rights\r\nGranting and Revoking Privileges\r\nData Dictionary Resources\r\nSESSION_PRIVS\r\nSESSION_ROLES\r\nUSER_SYS_PRIVS\r\nUSER_ROLE_PRIVS\r\nDBA_SYS_PRIVS\r\nUSER_TAB_PRIVS,USER_TAB_PRIVS_MADE,and USER_TAB_PRIVS_RECD\r\nChapter Summary\r\nTwo-Minute Drill\r\nChapter Questions\r\nAnswers to Chapter Quetions\r\n\r\n11 Managing Interdependencies\r\n\r\nTracking Dependencies\r\nUSER_DEPENDENCIES\r\nDEPTREE and IDEPTREE\r\nDependency Issues Within a Single Database\r\nDependency Issues Across Multiple Databases\r\nThe Timestamp Mode\r\nThe Signature Mode\r\nAvoiding Recompilation Errors\r\nChapter Summary\r\nTwo-Minute Drill\r\nChapter Questions\r\nAnswers to Chapter Quetions\r\n\r\nPART IV Practice Exams\r\n\r\n12 Practice Exams\r\n\r\nPractice Exam #1\r\nAnswers to Practice Exam #1\r\nPractice Exam #2\r\nAnswers to Practice Exam #2\r\nPractice Exam #3\r\nAnswers to Practice Exam #3
无封面