Three Simple Steps to Improving PL/SQL Code Quality

Size: px
Start display at page:

Download "Three Simple Steps to Improving PL/SQL Code Quality"

Transcription

1 Three Simple Steps to Improving PL/SQL Code Quality Steven Feuerstein Oracle Developer Advocate for PL/SQL Oracle Corporation Blog: stevenfeuersteinonplsql.blogspot.com YouTube: Practically Perfect PL/SQL 1

2 Resources for Oracle Database Developers Official home of SQL and PL/SQL - oracle.com/sql oracle.com/plsql SQL-PL/SQL discussion forum on OTN PL/SQL and EBR blog by Bryn Llewellyn - Oracle Learning Library - oracle.com/oll Quizzes, workouts and classes - devgym.oracle.com Ask Tom - asktom.oracle.com 'nuff said (+ new! Office Hours!) LiveSQL - livesql.oracle.com script repository and 12/7 12c database oracle-base.com - great content from Tim Hall oracle-developer.net - great content from Adrian Billington Page 2

3 Agenda Short and Sweet Why should we care? Compile-time warnings Write tiny little chunks of code Instrument your code Page 3

4 Why should we care? Pride of ownership/craft Code in the database plays a fundamental role in application Database code lives on much longer than UX/UI code Page 4

5 Compiler Features Automatic, transparent optimization of code Compile-time warnings framework to help you improve the quality and performance of your code. Conditional compilation You decide what code should be compiled/ignored! Page 5

6 Warnings help you build better code Your code compiles without errors. Great, you can run that program! But does it use the PL/SQL language optimally? PL/SQL offers a compile-time warnings feature to answer this question. Automatically informs you of ways to improve the quality or performance of your code. Available warnings are documented in the Oracle Database Error Messages document: PLS prefix = PL/SQL compiler error PLW prefix = compile-time warning Page 6

7 Enable and Disable Warnings To use compiler warnings, you must turn them on for session or for a particular program unit. By default, warnings are disabled. Can specify individual warnings or categories. SQL Developer Preferences/PL/SQL Compiler offers UI access. ALTER SESSION [ENABLE DISABLE ERROR]: [ALL SEVERE INFORMATIONAL PERFORMANCE warning_number] REM To enable all warnings in your session: ALTER SESSION SET plsql_warnings = 'enable:all'; REM If you want to enable warning message number and all warnings in REM the performance category, and treat 5005 as a "hard" compile error: ALTER PROCEDURE my_procedure SET plsql_warnings = 'enable:06002', 'enable:performance', 'ERROR:05005'; Page 7

8 Checking for Warnings The USER_ERRORS data dictionary view shows both "hard" errors and compilation warnings. Use the SHOW ERRORS command in SQL*Plus. IDEs will usually display warnings within the edit window. Or run your own query against USER_ERRORS. Page 8

9 Example: check for unreachable code There may be lines of code that could never, ever execute. SQL> CREATE OR REPLACE PROCEDURE unreachable_code IS 2 x NUMBER := 10; 3 BEGIN 4 IF x = 10 THEN 5 x := 20; 6 ELSE 7 x := 100; -- unreachable code 8 END IF; 9 END unreachable_code; 10 / SP2-0804: Procedure created with compilation warnings SQL> show err Errors for PROCEDURE UNREACHABLE_CODE: LINE/COL ERROR /7 PLW-06002: Unreachable code plw6002.sql Page 9

10 Useful warnings added in 11.1 PLW-6017: something's going to raise an error! Such as VARCHAR2(1) := 'abc'...finally! PLW-6009: OTHERS exception handler does not re-raise an exception. More feedback on impact of optimization PLW-6007: Notification that entire subprograms were removed PLW-7205: warning on mixed use of integer types Namely, SIMPLE_INTEGER mixed with PLS_INTEGER and BINARY_INTEGER PLW-7206: unnecessary assignments Lots of PRAGMA INLINE-related warnings plw*.sql files Page 10

11 The Oracle Knows: an error will occur CREATE OR REPLACE PROCEDURE plw6017 IS c VARCHAR2 (1) := 'abc'; BEGIN One big frustration I have had with compile-time warnings is that it did not flag code like you see above. What could be more basic? This (and more) is finally addressed in Oracle11g with the PLW warning. PLW-06017: an operation will raise an exception plw6017.sql Page 11

12 Treating a warning as "hard" compile error You might identify a warning that reflects such bad coding practices, that you want to ensure it never makes its way into production code. Just set the warning as an error and stop the use of that program "in its tracks." "Function does not return value" is a prime example. You never want this error to appear to users. Too embarrassing. ALTER SESSION SET PLSQL_WARNINGS='ERROR:5005' plw5005.sql Page 12

13 Conclusions - Compile-time Warnings Review the available warnings. Identify those which are of greatest importance to you. And with each new release of Oracle check for additions. Consider setting up scripts to enable different sets of warnings to match different development scenarios and to ignore those "nuisance" warnings. Or go radical: enable ALL warnings as ERRORS, and go for a 100% clean compile every single time! ALTER SESSION SET PLSQL_WARNINGS='ERROR:ALL' Page 13

14 Hope for the Best, Plan for the Worst Programmers are very optimistic too optimistic. We think we will be able to understand tomorrow the code we write today. We think users will use our apps the way they are intended. But we know that there will be problems, there will be mysteries. So it's important to be proactive. Make it easier to report, diagnose and fix problems. Consistent, encapsulated error management User-defined instrumentation (execution tracing) And make sure to provide explanations (comments) for any "out of the ordinary" code. Page 14

15 Consistent, encapsulated error management Ideally, all exception handlers log and re-raise errors in the same way. Store system and application-specific information Pass local variable and "application state" to error logger. Call built-ins to get error stack, execution stack and backtrace Avoid hard-coding of error numbers and messages Use EXCEPTION_INIT to give names to errors. Build your own (see errpkg for very simple example) or use something like logger, an open source logging and debugging framework Page 15 errpkg.pkg

16 User-defined instrumentation (execution tracing) Use Oracle Trace to obtain system tracing. But that's usually not enough. Trace additional, application-specific information from code while running. Make it easy to toggle on/off while application is running. Critical for production (don't comment it out after you are done testing). DBMS_OUTPUT.PUT_LINE is the "default" tracing mechanism and should never appear in your application code. You expose the trace/display mechanism. Too many drawbacks, too little flexibility. Page 16

17 Alternative Tracing Mechanisms Trace packages in demo.zip include: sf_trace: my latest, simple and sufficient tracer watch.pkg: "watch" the action, ability to direct trace information to a variety of targets. logger: open source logging and debugging framework DBMS_APPLICATION_INFO Writes to V$ views, good for long-running operations sf_trace*.* watch.pkg dbms_application_info_demo.sql Page 17

18 Write tiny little chunks of code Spaghetti code is the bane of a programmer's existence. It is impossible to understand and therefore debug or maintain code that has long, twisted executable sections. Fortunately, it is really easy to make spaghetti code a thing of the past. Organize your code so that the executable section of any block has no more than fifty lines of code. Page 18 intab_dbms_sql.sp local_module.sql cc_smartargs.sql logger_init_before_after.sql

19 Tiny executable sections = Readable code Follow this one suggestion no special tools required and you can instantly transform the quality and readability of your code. Some tips for implementing tiny executable sections: Hide complex expressions behind constants and functions. Use top-down design (decompose overwhelming challenges into smaller, more manageable tasks). Use Extract Procedure refactoring in your IDE. Evaluate each subprogram for correct scope: is it useful to others? Page 19

20 It's Easy to Write High Quality Code Wait. Really? I suppose it's actually easier (in the short term) to write really bad code. But there are also steps you can take that are not too awfully difficult, which can have a dramatic positive impact on code quality. 1. Fully leverage the PL/SQL compiler, especially the warnings. 2. Hope for the best, plan for worst: instrument your code. 3. Write tiny chunks of code: modularize, especially with nested subprograms. Page 20

21 21

Take Full Advantage of the PL/SQL Compiler

Take Full Advantage of the PL/SQL Compiler Take Full Advantage of the PL/SQL Compiler Steven Feuerstein Oracle Developer Advocate for PL/SQL Oracle CorporaDon Email: steven.feuerstein@oracle.com TwiLer: @sfonplsql Blog: stevenfeuersteinonplsql.blogspot.com

More information

JSON and PL/SQL: A Match Made in Database

JSON and PL/SQL: A Match Made in Database JSON and PL/SQL: A Match Made in Database Steven Feuerstein Oracle Developer Advocate for PL/SQL Oracle Corporation steven.feuerstein@oracle.com @sfonplsql stevenfeuersteinonplsql.blogspot.com Practically

More information

Impact Analysis with PL/Scope

Impact Analysis with PL/Scope Impact Analysis with PL/Scope Steven Feuerstein Oracle Developer Advocate for PL/SQL Oracle Corporation Email: steven.feuerstein@oracle.com Twitter: @sfonplsql Blog: stevenfeuersteinonplsql.blogspot.com

More information

Guarantee Application Success Steven Feuerstein PL/SQL Evangelist, Quest Software

Guarantee Application Success Steven Feuerstein PL/SQL Evangelist, Quest Software Guarantee Application Success Steven Feuerstein PL/SQL Evangelist, Quest Software www.stevenfeuerstein.com www.toadworld.com/sf Copyright 2009 Quest Software Obsessed with PL/SQL... Three courses in programming

More information

Weird PL/SQL Steven Feuerstein PL/SQL Evangelist, Quest Software

Weird PL/SQL Steven Feuerstein PL/SQL Evangelist, Quest Software Weird PL/SQL Steven Feuerstein PL/SQL Evangelist, Quest Software www.quest.com steven.feuerstein@quest.com Copyright 2007 Feuerstein and Associates How to benefit most from this session Watch, listen,

More information

Database Programming with PL/SQL

Database Programming with PL/SQL Database Programming with PL/SQL 15-2 Objectives This lesson covers the following objectives: Explain the similarities and differences between a warning and an error Compare and contrast the warning levels

More information

Oracle Database 12c & 18c Oracle PL/SQL New Features +

Oracle Database 12c & 18c Oracle PL/SQL New Features + Oracle Database 12c & 18c Oracle PL/SQL New Features + Steven Feuerstein Oracle Developer Advocate for PL/SQL Oracle Corporation Email: steven.feuerstein@oracle.com Twitter: @sfonplsql Blog: stevenfeuersteinonplsql.blogspot.com

More information

The perfect 12c PLSQL error handler. www. syntegris.de

The perfect 12c PLSQL error handler. www. syntegris.de The perfect c PLSQL error handler www. syntegris.de www. syntegris.de Twitter: @SvenWOracle Blog: svenweller.wordpress.com the perfect c error handler TOPICS Callstack Errorstack optimization levels Error

More information

The Quest for the perfect PLSQL error handler. Deep Dive into UTL_CALL_STACK. Sven-Uwe Weller.

The Quest for the perfect PLSQL error handler. Deep Dive into UTL_CALL_STACK. Sven-Uwe Weller. The Quest for the perfect PLSQL error handler Deep Dive into UTL_CALL_STACK Sven-Uwe Weller www.syntegris.de Sven-Uwe Weller Syntegris CEO, CTO "Design and Development" Oracle Certified Professional,

More information

ITDUMPS QUESTION & ANSWER. Accurate study guides, High passing rate! IT dumps provides update free of charge in one year!

ITDUMPS QUESTION & ANSWER. Accurate study guides, High passing rate! IT dumps provides update free of charge in one year! ITDUMPS QUESTION & ANSWER Accurate study guides, High passing rate! IT dumps provides update free of charge in one year! HTTP://WWW.ITDUMPS.COM Exam : 1Z0-144 Title : Oracle Database 11g: Program with

More information

Oracle Database 11g: Program with PL/SQL Release 2

Oracle Database 11g: Program with PL/SQL Release 2 Oracle University Contact Us: +41- (0) 56 483 31 31 Oracle Database 11g: Program with PL/SQL Release 2 Duration: 5 Days What you will learn This course introduces students to PL/SQL and helps them understand

More information

This presentation is for informational purposes only and may not be incorporated into a contract or agreement.

This presentation is for informational purposes only and may not be incorporated into a contract or agreement. This presentation is for informational purposes only and may not be incorporated into a contract or agreement. The following is intended to outline our general product direction. It is intended for information

More information

Oracle Database 12c: Program with PL/SQL Duration: 5 Days Method: Instructor-Led

Oracle Database 12c: Program with PL/SQL Duration: 5 Days Method: Instructor-Led Oracle Database 12c: Program with PL/SQL Duration: 5 Days Method: Instructor-Led Course Description This training starts with an introduction to PL/SQL and then explores the benefits of this powerful programming

More information

How to instrument your code easy and effectively

How to instrument your code easy and effectively How to instrument your code easy and effectively 31 maart 2017 APEX World Rotterdam Sabine Heimsath its-people GmbH Sabine Heimsath Client Senior Database Application Developer PL/SQL, SQL Developer, APEX

More information

Oracle Database 11g: Program with PL/SQL

Oracle Database 11g: Program with PL/SQL Oracle University Contact: +31 (0)30 669 9244 Oracle Database 11g: Program with PL/SQL Duration: 5 Dagen What you will learn This course introduces students to PL/SQL and helps them understand the benefits

More information

Oracle Database: Program with PL/SQL

Oracle Database: Program with PL/SQL Oracle University Contact Us: + 420 2 2143 8459 Oracle Database: Program with PL/SQL Duration: 5 Days What you will learn This Oracle Database: Program with PL/SQL training starts with an introduction

More information

Oracle PLSQL Training Syllabus

Oracle PLSQL Training Syllabus Oracle PLSQL Training Syllabus Introduction Course Objectives Course Agenda Human Resources (HR) Schema Introduction to SQL Developer Introduction to PL/SQL PL/SQL Overview Benefits of PL/SQL Subprograms

More information

Oracle Database: Program with PL/SQL Ed 2

Oracle Database: Program with PL/SQL Ed 2 Oracle University Contact Us: +38 61 5888 820 Oracle Database: Program with PL/SQL Ed 2 Duration: 5 Days What you will learn This Oracle Database: Program with PL/SQL training starts with an introduction

More information

Oracle Database 12c R2: Program with PL/SQL Ed 2 Duration: 5 Days

Oracle Database 12c R2: Program with PL/SQL Ed 2 Duration: 5 Days Oracle Database 12c R2: Program with PL/SQL Ed 2 Duration: 5 Days This Database Program with PL/SQL training shows you how to develop stored procedures, functions, packages and database triggers. You'll

More information

Conditionally control code flow (loops, control structures). Create stored procedures and functions.

Conditionally control code flow (loops, control structures). Create stored procedures and functions. TEMARIO Oracle Database: Program with PL/SQL Ed 2 Duration: 5 Days What you will learn This Oracle Database: Program with PL/SQL training starts with an introduction to PL/SQL and then explores the benefits

More information

Performance and Tuning. 2010, Oracle and/or its affiliates. All rights reserved.

Performance and Tuning. 2010, Oracle and/or its affiliates. All rights reserved. Performance and Tuning Objectives After completing this lesson, you should be able to do the following: Understand and influence the compiler Tune PL/SQL code Enable intraunit inlining 7-2 Lesson Agenda

More information

PROCEDURAL DATABASE PROGRAMMING ( PL/SQL AND T-SQL)

PROCEDURAL DATABASE PROGRAMMING ( PL/SQL AND T-SQL) Technology & Information Management Instructor: Michael Kremer, Ph.D. Class 5 Database Programming PROCEDURAL DATABASE PROGRAMMING ( PL/SQL AND T-SQL) AGENDA 7. Stored Procedures 7.1 Introduction to Stored

More information

Reconciling APEX and the Thick Database Paradigm

Reconciling APEX and the Thick Database Paradigm Reconciling APEX and the Thick Database Paradigm @BrynLite Product Manager for PL/SQL and EBR at Oracle HQ Not known for my brevity. Having trouble squeezing my own views not necessarily my employer's

More information

Oracle Database 12c Release 1 PL/SQL New Features

Oracle Database 12c Release 1 PL/SQL New Features Oracle Database 12c Release 1 PL/SQL New Features Steven Feuerstein PL/SQL Evangelist, Dell steven@stevenfeuerstein.com How to benefit most from this presentation Watch, listen, ask questions, focus on

More information

<Insert Picture Here> Using the PL/SQL Hierarchical Performance Profiler

<Insert Picture Here> Using the PL/SQL Hierarchical Performance Profiler Using the PL/SQL Hierarchical Performance Profiler Bryn Llewellyn Product Manager, Database Server Technologies Division, Oracle HQ The following is intended to outline our general

More information

Sql Server Check If Global Temporary Table Exists

Sql Server Check If Global Temporary Table Exists Sql Server Check If Global Temporary Table Exists I am trying to create a temp table from the a select statement so that I can get the schema information from the temp I have yet to see a valid justification

More information

Introduction to Computer Science and Business

Introduction to Computer Science and Business Introduction to Computer Science and Business The Database Programming with PL/SQL course introduces students to the procedural language used to extend SQL in a programatic manner. This course outline

More information

ORACLE DATABASE 12C INTRODUCTION

ORACLE DATABASE 12C INTRODUCTION SECTOR / IT NON-TECHNICAL & CERTIFIED TRAINING COURSE In this training course, you gain the skills to unleash the power and flexibility of Oracle Database 12c, while gaining a solid foundation of database

More information

COMP390 (Design &) Implementation

COMP390 (Design &) Implementation COMP390 (Design &) Implementation Phil (& Dave s) rough guide Consisting of some ideas to assist the development of large and small projects in Computer Science (and a chance for me to try out some features

More information

Oracle PL/SQL - 12c & 11g [Basic PL/SQL & Advanced PL/SQL]

Oracle PL/SQL - 12c & 11g [Basic PL/SQL & Advanced PL/SQL] Chapter Overview of PL/SQL Programs Control Statements Using Loops within PLSQL Oracle PL/SQL - 12c & 11g [Basic PL/SQL & Advanced PL/SQL] Table of Contents Describe a PL/SQL program construct List the

More information

Oracle - Oracle Database: Program with PL/SQL Ed 2

Oracle - Oracle Database: Program with PL/SQL Ed 2 Oracle - Oracle Database: Program with PL/SQL Ed 2 Code: Lengt h: URL: DB-PLSQL 5 days View Online This Oracle Database: Program with PL/SQL training starts with an introduction to PL/SQL and then explores

More information

You wrote WHAT? An examination of common coding mistakes made by PL/SQL developers (like yours truly!) and how you can avoid them yourself.

You wrote WHAT? An examination of common coding mistakes made by PL/SQL developers (like yours truly!) and how you can avoid them yourself. You wrote WHAT? Steven Feuerstein steven.feuerstein@quest.com An examination of common coding mistakes made by PL/SQL developers (like yours truly!) and how you can avoid them yourself. Love those cursor

More information

COMP390 (Design &) Implementation

COMP390 (Design &) Implementation COMP390 (Design &) Implementation Phil (& Dave s) rough guide Consisting of some ideas to assist the development of large and small projects in Computer Science (and a chance for me to try out some features

More information

PROCEDURAL DATABASE PROGRAMMING ( PL/SQL AND T-SQL)

PROCEDURAL DATABASE PROGRAMMING ( PL/SQL AND T-SQL) Technology & Information Management Instructor: Michael Kremer, Ph.D. Class 4 Database Programming PROCEDURAL DATABASE PROGRAMMING ( PL/SQL AND T-SQL) AGENDA 6. Stored Functions Procedural Database Programming

More information

Creating Ultra-fast Realtime Apps and Microservices with Java. Markus Kett, CEO Jetstream Technologies

Creating Ultra-fast Realtime Apps and Microservices with Java. Markus Kett, CEO Jetstream Technologies Creating Ultra-fast Realtime Apps and Microservices with Java Markus Kett, CEO Jetstream Technologies #NoDBMSApplications #JetstreamDB About me: Markus Kett Living in Regensburg, Germany Working with Java

More information

Evaluation Guide for ASP.NET Web CMS and Experience Platforms

Evaluation Guide for ASP.NET Web CMS and Experience Platforms Evaluation Guide for ASP.NET Web CMS and Experience Platforms CONTENTS Introduction....................... 1 4 Key Differences...2 Architecture:...2 Development Model...3 Content:...4 Database:...4 Bonus:

More information

& ( ); INSERT INTO ( ) SELECT

& ( ); INSERT INTO ( ) SELECT Oracle apex array Craig is a Development Consultant at Explorer. Craig has an MSc in Computing Science and is an experienced software engineer, utilising development tools such as PL/SQL and APEX to provide

More information

This presentation is for informational purposes only and may not be incorporated into a contract or agreement.

This presentation is for informational purposes only and may not be incorporated into a contract or agreement. This presentation is for informational purposes only and may not be incorporated into a contract or agreement. SQL Developer Introducing Oracle's New Graphical Database Development Tool Craig Silveira

More information

Now, we can refer to a sequence without having to use any SELECT command as follows:

Now, we can refer to a sequence without having to use any SELECT command as follows: Enhancement in 11g Database PL/SQL Sequence: Oracle Database 11g has now provided support for Sequence in PL/SQL. Earlier to get a number from a sequence in PL/SQL we had to use SELECT command with DUAL

More information

IZ0-144Oracle 11g PL/SQL Certification (OCA) training

IZ0-144Oracle 11g PL/SQL Certification (OCA) training IZ0-144Oracle 11g PL/SQL Certification (OCA) training Advanced topics covered in this course: Managing Dependencies of PL/SQL Objects Direct and Indirect Dependencies Using the PL/SQL Compiler Conditional

More information

Oracle Application Express Schema Design Guidelines Presenter: Flavio Casetta, Yocoya.com

Oracle Application Express Schema Design Guidelines Presenter: Flavio Casetta, Yocoya.com Oracle Application Express Schema Design Guidelines Presenter: Flavio Casetta, Yocoya.com about me Flavio Casetta Founder of Yocoya.com Editor of blog OracleQuirks.blogspot.com 25+ years in the IT 10+

More information

COMP390 (Design &) Implementation

COMP390 (Design &) Implementation COMP390 (Design &) Implementation A rough guide Consisting of some ideas to assist the development of large and small projects in Computer Science (With thanks to Dave Shield) Design & Implementation What

More information

How APEXBlogs was built

How APEXBlogs was built How APEXBlogs was built By Dimitri Gielis, APEX Evangelists Copyright 2011 Apex Evangelists apex-evangelists.com How APEXBlogs was built By Dimitri Gielis This article describes how and why APEXBlogs was

More information

Exam Name: Oracle Database 11g: Program with PL/SQL

Exam Name: Oracle Database 11g: Program with PL/SQL Vendor: Oracle Exam Code: 1Z0-144 Exam Name: Oracle Database 11g: Program with PL/SQL Version: DEMO 1.View the Exhibit to examine the PL/SQL code: SREVROUPUT is on for the session. Which statement Is true

More information

Oracle Development - Part III: Coding Standards

Oracle Development - Part III: Coding Standards By Cheetah Solutions Editor s Note: In this final of a three-white-paper series on Oracle Custom Development, Cheetah Solutions tackles the issue of coding standards. In their concluding white paper, Cheetah

More information

Rust for high level applications. Lise Henry

Rust for high level applications. Lise Henry Rust for high level applications Lise Henry Who am I Elisabeth Henry A.k.a Lizzie Crowdagger Computer science background Semi-professional fantasy writer I like Rust, but not really into systems programming

More information

Oracle12c Release 1 PL/SQL (3 Days)

Oracle12c Release 1 PL/SQL (3 Days) Oracle12c Release 1 PL/SQL (3 Days) www.peaklearningllc.com Course Description This course provides a complete, hands-on, comprehensive introduction to PL/SQL including the use of both SQL Developer and

More information

The NoPlsql and Thick Database Paradigms

The NoPlsql and Thick Database Paradigms The NoPlsql and Thick Database Paradigms Part 2: Adopting ThickDB Toon Koppelaars Real-World Performance Oracle Server Technologies Bryn Llewellyn Distinguished Product Manager Oracle Server Technologies

More information

<Insert Picture Here> Oracle SQL Developer: PL/SQL Support and Unit Testing

<Insert Picture Here> Oracle SQL Developer: PL/SQL Support and Unit Testing 3 Oracle SQL Developer: PL/SQL Support and Unit Testing The following is intended to outline our general product direction. It is intended for information purposes only, and may not

More information

Oracle Developer Track Course Contents. Mr. Sandeep M Shinde. Oracle Application Techno-Functional Consultant

Oracle Developer Track Course Contents. Mr. Sandeep M Shinde. Oracle Application Techno-Functional Consultant Oracle Developer Track Course Contents Sandeep M Shinde Oracle Application Techno-Functional Consultant 16 Years MNC Experience in India and USA Trainer Experience Summary:- Sandeep M Shinde is having

More information

Oracle Database: Introduction to SQL/PLSQL Accelerated

Oracle Database: Introduction to SQL/PLSQL Accelerated Oracle University Contact Us: Landline: +91 80 67863899 Toll Free: 0008004401672 Oracle Database: Introduction to SQL/PLSQL Accelerated Duration: 5 Days What you will learn This Introduction to SQL/PLSQL

More information

Session 4b: Review of Program Quality

Session 4b: Review of Program Quality Session 4b: Review of Program Quality What makes one program "better" than another? COMP 170 -- Fall, 2013 Mr. Weisert What is a good program? Suppose we give the same assignment to two programmers (or

More information

Holistic Database Security

Holistic Database Security Holistic Database Security 1 Important Terms Exploit: Take advantage of a flaw or feature Attack Surface: Any node on the network that can be attacked. That can be the UI, People, anything that touches

More information

Oracle 1z z0-146 Oracle Database 11g: Advanced PL/SQL. Practice Test. Version QQ:

Oracle 1z z0-146 Oracle Database 11g: Advanced PL/SQL. Practice Test. Version QQ: Oracle 1z0-146 1z0-146 Oracle Database 11g: Advanced PL/SQL Practice Test Version 1.1 QUESTION NO: 1 Which two types of metadata can be retrieved by using the various procedures in the DBMS_METADATA PL/SQL

More information

When a database trigger routine does not have to take place before the triggering event, which timing should you assign to the trigger?

When a database trigger routine does not have to take place before the triggering event, which timing should you assign to the trigger? Page 1 of 80 Item: 1 (Ref:1z0-147e.9.2.4) When a database trigger routine does not have to take place before the triggering event, which timing should you assign to the trigger? nmlkj ON nmlkj OFF nmlkj

More information

1Z0-101 develop pl/sql program units

1Z0-101 develop pl/sql program units develop pl/sql program units Q&A DEMO Version Copyright (c) 2007 Chinatag LLC. All rights reserved. Important Note Please Read Carefully For demonstration purpose only, this free version Chinatag study

More information

Database Programming with PL/SQL

Database Programming with PL/SQL Database Programming with PL/SQL 15-4 Objectives This lesson covers the following objectives: Describe the benefits of obfuscated PL/SQL source code Use the DBMS_DDL.CREATE_WRAPPED server-supplied procedure

More information

Module 10A Lecture - 20 What is a function? Why use functions Example: power (base, n)

Module 10A Lecture - 20 What is a function? Why use functions Example: power (base, n) Programming, Data Structures and Algorithms Prof. Shankar Balachandran Department of Computer Science and Engineering Indian Institute of Technology, Madras Module 10A Lecture - 20 What is a function?

More information

GDB Tutorial. A Walkthrough with Examples. CMSC Spring Last modified March 22, GDB Tutorial

GDB Tutorial. A Walkthrough with Examples. CMSC Spring Last modified March 22, GDB Tutorial A Walkthrough with Examples CMSC 212 - Spring 2009 Last modified March 22, 2009 What is gdb? GNU Debugger A debugger for several languages, including C and C++ It allows you to inspect what the program

More information

And Answers In Oracle Pl Sql

And Answers In Oracle Pl Sql Most Frequently Asked Interview Questions And Answers In Oracle Pl Sql To be successful with database-centric applications (which includes most of the in the form of several question-answer sessions commonly

More information

Customer Coffee Corner for SAP IQ Using sp_iqrebuildindex()

Customer Coffee Corner for SAP IQ Using sp_iqrebuildindex() Customer Coffee Corner for SAP IQ Using sp_iqrebuildindex() Customer SAP Product Support February, 2017 Agenda Objectives sp_iqrebuildindex() usage FAQs Useful scripts Closing remarks Open discussion 2016

More information

ORACLE: PL/SQL Programming

ORACLE: PL/SQL Programming %ROWTYPE Attribute... 4:23 %ROWTYPE... 2:6 %TYPE... 2:6 %TYPE Attribute... 4:22 A Actual Parameters... 9:7 Actual versus Formal Parameters... 9:7 Aliases... 8:10 Anonymous Blocks... 3:1 Assigning Collection

More information

A Crash Course in Perl5

A Crash Course in Perl5 z e e g e e s o f t w a r e A Crash Course in Perl5 Part 8: Database access in Perl Zeegee Software Inc. http://www.zeegee.com/ Terms and Conditions These slides are Copyright 2008 by Zeegee Software Inc.

More information

Topics Fundamentals of PL/SQL, Integration with PROIV SuperLayer and use within Glovia

Topics Fundamentals of PL/SQL, Integration with PROIV SuperLayer and use within Glovia Topics Fundamentals of PL/SQL, Integration with PROIV SuperLayer and use within Glovia 1. Creating a Database Alias 2. Introduction to SQL Relational Database Concept Definition of Relational Database

More information

IT Certification Exams Provider! Weofferfreeupdateserviceforoneyear! h ps://

IT Certification Exams Provider! Weofferfreeupdateserviceforoneyear! h ps:// IT Certification Exams Provider! Weofferfreeupdateserviceforoneyear! h ps://www.certqueen.com Exam : 1Z0-146 Title : Oracle database 11g:advanced pl/sql Version : Demo 1 / 9 1.The database instance was

More information

1Z0-144 Q&As Oracle Database 11g: Program with PL/ SQL

1Z0-144 Q&As Oracle Database 11g: Program with PL/ SQL CertBus.com 1Z0-144 Q&As Oracle Database 11g: Program with PL/ SQL Pass Oracle 1Z0-144 Exam with 100% Guarantee Free Download Real Questions & Answers PDF and VCE file from: 100% Passing Guarantee 100%

More information

Sabine Heimsath PL/SQL Monitoren > Messen > Optimieren mit Open Source APEX Connect 2018 APEX Connect Sabine Heimsath

Sabine Heimsath PL/SQL Monitoren > Messen > Optimieren mit Open Source APEX Connect 2018 APEX Connect Sabine Heimsath Sabine Heimsath PL/SQL Monitoren > Messen > Optimieren mit Open Source APEX Connect 2018 Sabine Heimsath Offiziell in der IT unterwegs seit 1999/DB-Version: 8.1.7 Mag relationale Datenbanken, Aardman

More information

Xcode Tricks. ios App Development Fall 2010 Lecture 13

Xcode Tricks. ios App Development Fall 2010 Lecture 13 Xcode Tricks ios App Development Fall 2010 Lecture 13 Questions? Announcements Reminder: Assignment #3 due Monday, October 18 th by 11:59pm Today s Topics Building & Running Code Troubleshooting Debugging

More information

Lesson 14 Transcript: Triggers

Lesson 14 Transcript: Triggers Lesson 14 Transcript: Triggers Slide 1: Cover Welcome to Lesson 14 of DB2 on Campus Lecture Series. Today, we are going to talk about Triggers. My name is Raul Chong, and I'm the DB2 on Campus Program

More information

PL / SQL Basics. Chapter 3

PL / SQL Basics. Chapter 3 PL / SQL Basics Chapter 3 PL / SQL Basics PL / SQL block Lexical units Variable declarations PL / SQL types Expressions and operators PL / SQL control structures PL / SQL style guide 2 PL / SQL Block Basic

More information

Lesson 13 Transcript: User-Defined Functions

Lesson 13 Transcript: User-Defined Functions Lesson 13 Transcript: User-Defined Functions Slide 1: Cover Welcome to Lesson 13 of DB2 ON CAMPUS LECTURE SERIES. Today, we are going to talk about User-defined Functions. My name is Raul Chong, and I'm

More information

New Oracle 12c Features for Developers

New Oracle 12c Features for Developers New Oracle 12c Features for Developers Table of Contents Overview 1 THE BIG 6 The main developer enhancements in 12C 1 row_limiting_clause 1 New sizes for datatypes 3 PL/SQL functions in the WITH clause

More information

ORACLE TRAINING. ORACLE Training Course syllabus ORACLE SQL ORACLE PLSQL. Oracle SQL Training Syllabus

ORACLE TRAINING. ORACLE Training Course syllabus ORACLE SQL ORACLE PLSQL. Oracle SQL Training Syllabus ORACLE TRAINING ORACLE Training Course syllabus ORACLE SQL ORACLE PLSQL Oracle SQL Training Syllabus Introduction to Oracle Database List the features of Oracle Database 11g Discuss the basic design, theoretical,

More information

Jigsaw and OSGi: What the Heck Happens Now?

Jigsaw and OSGi: What the Heck Happens Now? Jigsaw and OSGi: What the Heck Happens Now? Neil Bartlett neil.bartlett@paremus.com Jigsaw and OSGi: WTF Happens Now? Neil Bartlett neil.bartlett@paremus.com Agenda WTF is a Module System? How do OSGi

More information

Introduction. A Brief Description of Our Journey

Introduction. A Brief Description of Our Journey Introduction If you still write RPG code as you did 20 years ago, or if you have ILE RPG on your resume but don t actually use or understand it, this book is for you. It will help you transition from the

More information

With Tom Kyte and Andy Mendelsohn. plus special guest appearances: Dan McGhan, Natalka Roshak, Chris Saxon

With Tom Kyte and Andy Mendelsohn. plus special guest appearances: Dan McGhan, Natalka Roshak, Chris Saxon With Tom Kyte and Andy Mendelsohn plus special guest appearances: Dan McGhan, Natalka Roshak, Chris Saxon TWEET AWAY! #yessql Copyright Copyright 2014, 2014, Oracle Oracle and/or and its affiliates. /

More information

CIS 45, The Introduction. What is a database? What is data? What is information?

CIS 45, The Introduction. What is a database? What is data? What is information? CIS 45, The Introduction I have traveled the length and breadth of this country and talked with the best people, and I can assure you that data processing is a fad that won t last out the year. The editor

More information

UNIT II PL / SQL AND TRIGGERS

UNIT II PL / SQL AND TRIGGERS UNIT II PL / SQL AND 1 TRIGGERS TOPIC TO BE COVERED.. 2.1 Basics of PL / SQL 2.2 Datatypes 2.3 Advantages 2.4 Control Structures : Conditional, Iterative, Sequential 2.5 Exceptions: Predefined Exceptions,User

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 01: Procedural Programming MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Procedural Programming 2 Introduction Procedural Programming: General Overview Procedural Programming:

More information

1Z Oracle Database 11g - Program with PL/SQL Exam Summary Syllabus Questions

1Z Oracle Database 11g - Program with PL/SQL Exam Summary Syllabus Questions 1Z0-144 Oracle Database 11g - Program with PL/SQL Exam Summary Syllabus Questions Table of Contents Introduction to 1Z0-144 Exam on Oracle Database 11g - Program with PL/SQL... 2 Oracle 1Z0-144 Certification

More information

Oracle Database 10g: PL/SQL Fundamentals. Oracle Internal & Oracle Academy Use Only. Volume I Student Guide. D17112GC30 Edition 3.0 April 2009 D59413

Oracle Database 10g: PL/SQL Fundamentals. Oracle Internal & Oracle Academy Use Only. Volume I Student Guide. D17112GC30 Edition 3.0 April 2009 D59413 D17112GC30 Edition 3.0 April 2009 D59413 Oracle Database 10g: PL/SQL Fundamentals Volume I Student Guide Introduction Objectives After completing this lesson, you should be able to do the following: Describe

More information

Social Bookmarks. Blasting their site with them during the first month of creation Only sending them directly to their site

Social Bookmarks. Blasting their site with them during the first month of creation Only sending them directly to their site Hey guys, what's up? We have another, jammed packed and exciting bonus coming at you today. This one is all about the "Everyone knows Everybody" generation; where everyone is socially connected via the

More information

Best Practices for Performance Part 2.NET and Oracle Database

Best Practices for Performance Part 2.NET and Oracle Database Best Practices for Performance Part 2.NET and Oracle Database Alex Keh Christian Shay Product Managers Server Technologies September 19, 2016 Program Agenda 1 2 3 4 Caching SQL Tuning Advisor Oracle Performance

More information

Lecture 5: Methods CS2301

Lecture 5: Methods CS2301 Lecture 5: Methods NADA ALZAHRANI CS2301 1 Opening Problem Find the sum of integers from 1 to 10, from 20 to 30, and from 35 to 45, respectively. 2 Solution public static int sum(int i1, int i2) { int

More information

5. Single-row function

5. Single-row function 1. 2. Introduction Oracle 11g Oracle 11g Application Server Oracle database Relational and Object Relational Database Management system Oracle internet platform System Development Life cycle 3. Writing

More information

SQLLIMS_RECORDS_API: Defines constants and record types used by the other API packages. This package is available as well for end-user use.

SQLLIMS_RECORDS_API: Defines constants and record types used by the other API packages. This package is available as well for end-user use. Applied Biosystems SQL*LIMS Technical Support Technical Note Document Number: LIMS017 Last Revision Date: 3162004 Software Versions: SQL*LIMS v4.0.16 and v4.1 Platform: All Platforms Authors: Deborah Man

More information

Oracle Database: SQL and PL/SQL Fundamentals NEW

Oracle Database: SQL and PL/SQL Fundamentals NEW Oracle University Contact Us: 001-855-844-3881 & 001-800-514-06-97 Oracle Database: SQL and PL/SQL Fundamentals NEW Duration: 5 Days What you will learn This Oracle Database: SQL and PL/SQL Fundamentals

More information

Database Programming with PL/SQL

Database Programming with PL/SQL Database Programming with PL/SQL Trapping Oracle Server Exceptions 1 Copyright 2013, Oracle and/or its affiliates. All rights Objectives This lesson covers the following objectives: Describe and provide

More information

Database Modelling. Lecture 8 (b): PL/SQL Exceptions Handling 1/6/2015 1

Database Modelling. Lecture 8 (b): PL/SQL Exceptions Handling 1/6/2015 1 Database Modelling Lecture 8 (b): PL/SQL Exceptions Handling 1/6/2015 1 This lecture will cover: Overview - The need for exception handling in PL/SQL - How exceptions are handled in Oracle PL/SQL - How

More information

Advanced Oracle Troubleshooting Live Session. Randolf Geist

Advanced Oracle Troubleshooting Live Session. Randolf Geist Advanced Oracle Troubleshooting Live Session Randolf Geist http://oracle-randolf.blogspot.com/ http://www.sqltools-plusplus.org:7676/ info@sqltools-plusplus.org Who am I Independent Consultant Located

More information

Sql Server Compare Two Tables To Find Differences

Sql Server Compare Two Tables To Find Differences Sql Server Compare Two Tables To Find Differences compare and find differences for SQL Server tables and data When the User set two Employees ID (for example : 1 & 2) the program is supposed to show. Ways

More information

OVERVIEW OF THE TYPES OF PL/SQL BLOCKS:

OVERVIEW OF THE TYPES OF PL/SQL BLOCKS: OVERVIEW OF THE TYPES OF PL/SQL BLOCKS: The P/L SQL blocks can be divided into two broad categories: Anonymous Block: The anonymous block is the simplest unit in PL/SQL. It is called anonymous block because

More information

ORACLE TRAINING CURRICULUM. Relational Databases and Relational Database Management Systems

ORACLE TRAINING CURRICULUM. Relational Databases and Relational Database Management Systems ORACLE TRAINING CURRICULUM Relational Database Fundamentals Overview of Relational Database Concepts Relational Databases and Relational Database Management Systems Normalization Oracle Introduction to

More information

100% Generation: No More Excuses!

100% Generation: No More Excuses! 100% Generation: No More Excuses! Steven M. Davelaar Custom Development Center of Excellence, Oracle Corporation Introduction Today, 100% generation with the Forms Generator is only achievable for real

More information

EZY Intellect Pte. Ltd., #1 Changi North Street 1, Singapore

EZY Intellect Pte. Ltd., #1 Changi North Street 1, Singapore Oracle Database 12c: Performance Management and Tuning NEW Duration: 5 Days What you will learn In the Oracle Database 12c: Performance Management and Tuning course, learn about the performance analysis

More information

ISV Migrating to Oracle9i/10g

ISV Migrating to Oracle9i/10g ISV Migrating to Oracle9i/10g Methodology, Tips & Tricks and Resources Tom Laszewski Technical Director Partner Technical Services Server Technologies Agenda Typical Migration Projects Migration Methodology

More information

Clickteam Fusion 2.5 Creating a Debug System - Guide

Clickteam Fusion 2.5 Creating a Debug System - Guide INTRODUCTION In this guide, we will look at how to create your own 'debug' system in Fusion 2.5. Sometimes when you're developing and testing a game, you want to see some of the real-time values of certain

More information

Designing Pages with Widgets

Designing Pages with Widgets Designing Pages with Widgets You can easily get some of the pages in Clearspace to look the way you want to by using widgets to choose and arrange content. Each widget displays content of a particular

More information

Reliable programming

Reliable programming Reliable programming How to write programs that work Think about reliability during design and implementation Test systematically When things break, fix them correctly Make sure everything stays fixed

More information

DBMS_JAVA. LONGNAME and SHORTNAME. Appendix A

DBMS_JAVA. LONGNAME and SHORTNAME. Appendix A DBMS_JAVA The DBMS_JAVA package is somewhat of an enigma. It is a PL/SQL package but it is not documented in the Supplied PL/SQL Packages Reference guide. It is designed to support Java in the database,

More information