Sumário Itens Encontrados: 237PrefaceAcknowledgmentsAbout the AuthorsIntroduction to PL/SQL New Features in Oracle 12cInvokerâs Rights Functions Can Be Result-CachedMore PL/SQL-Only Data Types Can Cross the PL/SQL-to-SQL InterfaceClauseACCESSIBLE BY ClauseFETCH FIRST ClauseRoles Can Be Granted to PL/SQL Packages and Stand-Alone SubprogramsMore Data Types Have the Same Maximum Size in SQL and PL/SQLDatabase Triggers on Pluggable DatabasesLIBRARY Can Be Defined as a DIRECTORY Object and with aCREDENTIAL ClauseImplicit Statement ResultsBEQUEATH CURRENT_USER ViewsINHERIT PRIVILEGES and INHERIT ANY PRIVILEGES PrivilegesInvisible ColumnsObjects, Not Types, Are Editioned or NoneditionedPL/SQL Functions That Run Faster in SQLPredefined Inquiry Directives $$PLSQL_UNIT_OWNER and$$PLSQL_UNIT_TYPECompilation Parameter PLSQL_DEBUG Is DeprecatedChapter 1 PL/SQL ConceptsLab 1.1: PL/SQL ArchitecturePL/SQL ArchitecturePL/SQL Block StructureHow PL/SQL Gets ExecutedLab 1.2: PL/SQL Development EnvironmentGetting Started with SQL DeveloperGetting Started with SQL*PlusExecuting PL/SQL ScriptsLab 1.3: PL/SQL: The BasicsDBMS_OUTPUT.PUT_LINE StatementSubstitution Variable FeatureSummaryChapter 2 PL/SQL Language FundamentalsLab 2.1: PL/SQL Programming FundamentalsPL/SQL Language ComponentsPL/SQL VariablesPL/SQL Reserved WordsIdentifiers in PL/SQLAnchored Data TypesDeclare and Initialize VariablesScope of a Block, Nested Blocks, and LabelsChapter 3 SQL in PL/SQLLab 3.1: DML Statements in PL/SQLInitialize Variables with SELECT INTOUsing the SELECT INTO Syntax for Variable InitializationUsing DML in a PL/SQL BlockUsing a Sequence in a PL/SQL BlockLab 3.2: Transaction Control in PL/SQLUsing COMMIT, ROLLBACK, and SAVEPOINTPutting Together DML and Transaction ControlChapter 4 Conditional Control: IF StatementsLab 4.1: IF StatementsIF-THEN StatementsIF-THEN-ELSE StatementLab 4.2: ELSIF StatementsLab 4.3: Nested IF StatementsChapter 5 Conditional Control: CASE StatementsLab 5.1: CASE StatementsCASE StatementsSearched CASE StatementsLab 5.2: CASE ExpressionsLab 5.3: NULLIF and COALESCE FunctionsNULLIF FunctionCOALESCE FunctionChapter 6 Iterative Control: Part ILab 6.1: Simple LoopsEXIT StatementEXIT WHEN StatementLab 6.2: WHILE LoopsUsing WHILE LoopsPremature Termination of the WHILE LoopLab 6.3: Numeric FOR LoopsUsing the IN Option in the LoopUsing the REVERSE Option in the LoopPremature Termination of the Numeric FOR LoopChapter 7 Iterative Control: Part IILab 7.1: CONTINUE StatementUsing CONTINUE StatementCONTINUE WHEN StatementLab 7.2: Nested LoopsUsing Nested LoopsUsing Loop LabelsChapter 8 Error Handling and Built-in ExceptionsLab 8.1: Handling ErrorsLab 8.2: Built-in ExceptionsChapter 9 ExceptionsLab 9.1: Exception ScopeLab 9.2: User-Defined ExceptionsLab 9.3: Exception PropagationRe-raising ExceptionsChapter 10 Exceptions: Advanced ConceptsLab 10.1: RAISE_APPLICATION_ERRORLab 10.2: EXCEPTION_INIT PragmaLab 10.3: SQLCODE and SQLERRMChapter 11 Introduction to CursorsLab 11.1: Types of CursorsMaking Use of an Implicit CursorMaking Use of an Explicit CursorLab 11.2: Cursor LoopProcessing an Explicit CursorMaking Use of a User-Defined RecordMaking Use of Cursor AttributesLab 11.3: Cursor FOR LOOPsMaking Use of Cursor FOR LOOPsLab 11.4: Nested CursorsProcessing Nested CursorsChapter 12 Advanced CursorsLab 12.1: Parameterized CursorsCursors with ParametersLab 12.2: Complex Nested CursorsLab 12.3: FOR UPDATE and WHERE CURRENT CursorsFOR UPDATE CursorFOR UPDATE OF in a CursorWHERE CURRENT OF in a CursorChapter 13 TriggersLab 13.1: What Triggers AreDatabase TriggerBEFORE TriggersAFTER TriggersAutonomous TransactionLab 13.2: Types of TriggersRow and Statement TriggersINSTEAD OF TriggersChapter 14 Mutating Tables and Compound TriggersLab 14.1: Mutating TablesWhat Is a Mutating Table?Resolving Mutating Table IssuesLab 14.2: Compound TriggersWhat Is a Compound Trigger?Resolving Mutating Table Issues with Compound TriggersChapter 15 CollectionsLab 15.1: PL/SQL TablesAssociative ArraysNested TablesCollection MethodsLab 15.2: VarraysLab 15.3: Multilevel CollectionsChapter 16 RecordsLab 16.1: Record TypesTable-Based and Cursor-Based RecordsUser-Defined RecordsRecord CompatibilityLab 16.2: Nested RecordsLab 16.3: Collections of RecordsChapter 17 Native Dynamic SQLLab 17.1: EXECUTE IMMEDIATE StatementsUsing the EXECUTE IMMEDIATE StatementHow to Avoid Common ORA Errors When Using EXECUTEIMMEDIATELab 17.2: OPEN-FOR, FETCH, and CLOSE StatementsOpening CursorFetching from a CursorClosing a CursorChapter 18 Bulk SQLLab 18.1: FORALL StatementsUsing FORALL StatementsSAVE EXCEPTIONS OptionINDICES OF OptionVALUES OF OptionLab 18.2: The BULK COLLECT ClauseLab 18.3: Binding Collections in SQL StatementsBinding Collections with EXECUTE IMMEDIATE StatementsBinding Collections with OPEN-FOR, FETCH, and CLOSE StatementsChapter 19 ProceduresBenefits of Modular CodeBlock StructureAnonymous BlocksLab 19.1: Creating ProceduresPutting Procedure Creation Syntax into PracticeQuerying the Data Dictionary for Information on ProceduresLab 19.2: Passing Parameters IN and OUT of ProceduresUsing IN and OUT Parameters with ProceduresChapter 20 FunctionsLab 20.1: Creating FunctionsCreating Stored FunctionsMaking Use of FunctionsLab 20.2: Using Functions in SQL StatementsInvoking Functions in SQL StatementsWriting Complex FunctionsLab 20.3: Optimizing Function Execution in SQLDefining a Function Using the WITH ClauseCreating a Function with the UDF PragmaChapter 21 PackagesLab 21.1: Creating PackagesCreating Package SpecificationsCreating Package BodiesCalling Stored PackagesCreating Private ObjectsLab 21.2: Cursor VariablesLab 21.3: Extending the PackageExtending the Package with Additional ProceduresLab 21.4: Package Instantiation and InitializationCreating Package Variables During InitializationLab 21.5: SERIALLY_REUSABLE PackagesUsing the SERIALLY_REUSABLE PragmaChapter 22 Stored CodeLab 22.1: Gathering Information about Stored CodeGetting Stored Code Information from the Data DictionaryOverloading ModulesChapter 23 Object Types in OracleLab 23.1: Object TypesCreating Object TypesUsing Object Types with CollectionsLab 23.2: Object Type MethodsConstructor MethodsMember MethodsStatic MethodsComparing ObjectsChapter 24 Oracle-Supplied PackagesLab 24.1: Extending Functionality with Oracle-Supplied PackagesAccessing Files within PL/SQL with UTL_FILEScheduling Jobs with DBMS_JOBGenerating an Explain Plan with DBMS_XPLANGenerating Implicit Statement Results with DBMS_SQLLab 24.2: Error Reporting with Oracle-Supplied PackagesUsing the DBMS_UTILITY Package for Error ReportingUsing the UTL_CALL_STACK Package for Error ReportingChapter 25 Optimizing PL/SQLLab 25.1: PL/SQL Tuning ToolsPL/SQL Profiler APITrace APIPL/SQL Hierarchical ProfilerLab 25.2: PL/SQL Optimization LevelsLab 25.3: Subprogram InliningAppendix A PL/SQL Formatting GuideCaseWhite SpaceNaming ConventionsCommentsOther SuggestionsAppendix B Student Database SchemaTable and Column DescriptionsIndex