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

Size: px
Start display at page:

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

Transcription

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

2 Obsessed with PL/SQL... Three courses in programming Oracle pre-sales First book published PL/SQL Evangelist, Quest Software 2001-Present Oracle PL/SQL Programming 5th Edition Book Signing Wednesday 15:45 Quest Booth Copyright 2008 Steven Feuerstein Copyright Steven Feuerstein - Page 1

3 Welcome to My Obsession PL/SQL Obsession Take advantage of all the resources available at PL/SQL Obsession. Standards, presentations, videos, puzzles, code... You have my permission to use all these materials to do internal trainings and to build your own applications. But remember: this code is generally not production ready. You must test them and modify them to fit your needs. filename_from_demo_zip.sql 2 Copyright 2008 Steven Feuerstein

4 What makes an application successful? That is the whole point of what we do, correct? And if our applications are successful, we are successful. It seems like the answer to this question should be obvious. But is it? Copyright 2008 Steven Feuerstein Page 3

5 What makes an application successful? So let's start with the really big picture. Our application is successful if and only if... Copyright 2008 Steven Feuerstein Page 4

6 How do we make our users happy? We make sure that the application... Is correct. The application should do what the user specified. Is fast enough to avoid user frustration and keep users productive. Is maintainable. As user requirements change, the application must change along with it without high cost. Copyright 2008 Steven Feuerstein Page 5

7 How do we achieve CORRECT, FAST (enough) and MAINTAINABLE? There is only way to prove that an application is correct: we test it. A lot. test Proactive: apply key optimization features test Reactive: stress/load test; isolate and remove bottlenecks. Establish, follow, verify best practices. Build and run regression tests. test Copyright 2008 Steven Feuerstein Page 6

8 "Regression" Test why is it called that? You've probably all heard of this kind of test. Why call it "regression" test? It is supposed to verify that your code has not regressed, gone backwards. If it worked in version 1.3, it really should work in version 1.4. How could this happen? I use (and need) that function key every day! Well, to be honest, we make changes and we really have no idea what the impact is. Sorry! Copyright 2008 Steven Feuerstein Page 7

9 Correct Applications are Tested Applications Testing is absolutely fundamental to successful applications. So why don't we test more thoroughly? Testing is hard work, in any and every language at least if we do it manually. For thorough testing, you should expect to have to write at least 10 lines of test code for every line of application code that needs testing! Testing is boring. We are not creating code or writing interesting algorithms and we are spoiled. Copyright 2008 Steven Feuerstein Page 8

10 Manual Testing is a Dead End If we write test code ourselves and stare at the screen until we are "sure" our code "works", we will never break out of the vicious cycle: We work long, hard hours yet always fall behind. Copyright 2008 Steven Feuerstein Page 9

11 Automation is Key to Thorough Testing There is really only one practical solution: automate code testing as fully as possible. It is, after all, precisely what we do to help our users. Automation allows us to... Find more bugs Repeat our tests Put regression tests in place Integrate testing into the development process. Copyright 2008 Steven Feuerstein Page 10

12 Options for automated testing of PL/SQL dbfit Based on the FitNesse platform, a tabular scripting approach, implemented in Java. utplsql and its variants Open-source framework, part of the xunit family. Essentially, "Junit for PL/SQL" PL/Unit and PLUTO are utplsql variants. SQL Developer 2.1 Unit testing integrated into the editor Quest Code Tester for Oracle Dedicated automated testing tool Copyright 2008 Steven Feuerstein Page 11

13 Successful Application are Fast (Enough) Applications This is the best understood leg of the tripod. Quest Software and others offer a number of tools to automate the tuning of SQL, and to stress test your code. Beyond that, it is critically important that you take advantage of key performancerelated features of PL/SQL. Copyright 2008 Steven Feuerstein Page 12

14 Key PL/SQL Performance Features The optimizing compiler Never set optimization level below 2. Collections Oracle's array-like structures, the foundation for most performance-related features of PL/SQL FORALL and BULK COLLECT Improve performance of multi-row SQL operations by an order of magnitude or more. The Oracle11g Function Result Cache Fantastic new declarative mechanism for data caching 11g_frc*.* Copyright 2008 Steven Feuerstein Page 13

15 Successful Applications are Maintainable Applications The code we write will be in use for years, perhaps decades. We should have all learned a big lesson from Y2K. The cost of maintaining an application can easily exceed the cost of initially building the application. It is critical that we pay attention not only to meeting the initial delivery deadline, but also to reducing the cost of changing the application over time. Copyright 2008 Steven Feuerstein Page 14

16 Steps to more maintainable code Build (and maintain) regression tests. Establish strong foundation of standards upon which code will be built. If everyone writes code their own way, the software is much harder to understand. Make it easy to follow standards. Don't just leave standards inside documents. Help developers establish new habits based on the standards. Verify that the standards were followed. If you don't check to make sure standards are followed, they will be ignored. Copyright 2008 Steven Feuerstein Page 15

17 What should be standardized? Don't start a new application until you have set standards in these areas... Basic coding standards and naming conventions. How to handle and log errors How, when and where to write SQL statements Copyright 2008 Steven Feuerstein Page 16

18 Basic coding conventions & naming standards Visit PL/SQL Obsession and select "PL/SQL Standards" to download a variety of suggested standards. Most important... Apply standards consistently and as comprehensively as possible. Check to make sure that standards are being followed. I will come back to this later. Copyright 2008 Steven Feuerstein Page 17

19 Standardize: How to Handle and Log Errors We don't like to deal with the negative, so we tend to avoid or minimize focus on exception management. Big mistake! It's very important to... Take full advantage of PL/SQL's error management features. Communicate problems in a consistent way to both users and support. Make it easy for developers to quickly and easily handle and log errors. Copyright 2008 Steven Feuerstein Page 18

20 Use a Shared Error Manager All developers should use the same mechanism to raise, handle, log errors. Many groups have built their own. If you need one... Quest Error Manager, available from Logger from Oracle's samplecode on OTN Copyright 2008 Steven Feuerstein Page 19

21 How, When and Where to Write SQL Yes, that sounds about right, doesn't it? Imagine writing PL/SQL programs and not writing any SQL statements... Does that sound painful? I think it sounds wonderful! Copyright 2008 Steven Feuerstein Page 20

22 What's so bad about SQL? There's nothing wrong with SQL. The problem is with where, when and how we write SQL in our applications. Everyone has naming conventions and no one has any rules for SQL. Very strange... Stop taking SQL for granted. It is the source of many problems and challenges. Every SQL statement you write is a hard-coding that is worse than a hard-coded literal value! Copyright 2008 Steven Feuerstein Page 21

23 Set Rules for Writing SQL If you don't control how SQL is written, you will not be able to easily optimize and maintain your code. Use Bryn Check out Bryn Llewellyn's white paper "Doing SQL in PL/SQL: Best and Worst Practices" available on the Oracle Technology Network. Generally, apply the same principle to SQL that you should everything else in your code: Copyright 2008 Steven Feuerstein Page 22

24 Hide SQL Behind a Data Access Layer Protect application code from change. Prepare to take advantage of new features Like the Oracle11g function result cache. Improve productivity and code quality. Application Code Intermediate Layer Order Table Item Table Copyright 2008 Steven Feuerstein Page 23

25 Verify standards are being followed It's not enough to set rules, you need to check the code afterwards for compliance. Choose from any and all of the following: Peer/team code review (manual) Queries against various data dictionary views Compile-time warnings PL/Scope IDE- based analysis tools Copyright 2008 Steven Feuerstein Page 24

26 Peer / Team Code Review No critical code should make it to production unless another human being looks it over. You could go "extreme": Pair Programming of XP Team meetings to review code help in many ways... Share knowledge about applications and programs within Technology expertise is shared as senior developers point out other/better ways to do things Reading of code often can uncover "deep" bugs and better algorithms. Copyright 2008 Steven Feuerstein Page 25

27 Handy Data Dictionary views for PL/SQL ALL_SOURCE Source code of all accessible programs ALL_PROCEDURES Information about every subprogram you can execute ALL_ARGUMENTS Information about every argument of every subprogram you can execute ALL_PLSQL_OBJECT_SETTINGS Compile-time settings of PL/SQL program units Copyright 2008 Steven Feuerstein valstd.* show_all_arguments.* Copyright Steven Feuerstein - Page 26

28 Compile-time warnings framework Enable warnings and the compiler will give you feedback on the quality of your code.. Review the PLW category in the Error Messages manual to see which warnings are most important to you. Use the Oracle11g version if at all possible. ALTER SESSION SET plsql_warnings = 'enable:all enable:all'; ALTER SESSION SET plsql_warnings = 'enable:06002', 'enable:performance enable:performance', 'ERROR:05005'; Copyright 2008 Steven Feuerstein Page 27

29 Compiler time warnings an example Check for unreachable end code. 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 plw*.sql Copyright 2008 Steven Feuerstein Page 28

30 PL/Scope Oracle11g A compiler-driven tool that collects information about identifiers and makes it available through a data dictionary view. Use PL/Scope to answer questions like: Where if a variable assigned a value in a program? What variables are declared inside a given program? Which programs call another program (that is, you can get down to a subprogram in a package)? Find the type of a variable from its declaration. Copyright 2008 Steven Feuerstein Page 29

31 Some PL/Scope examples Enable gathering of PL/Scope data. ALTER SESSION SET plscope_settings='identifiers:all' Verify PL/Scope setting for a program. SELECT plscope_settings FROM user_plsql_object_settings WHERE NAME = 'PACK1' AND TYPE = 'PACKAGE BODY' Identify all declarations for the specified set of programs whose names do not start with "L_". SELECT name, signature, tyhpe FROM user_identifiers WHERE name NOT LIKE 'L\_%' ESCAPE '\' ' AND USAGE = 'DECLARATION' AND object_name LIKE '&1' 11g_plscope.sql 11g_plscope_amis.sql Copyright 2008 Steven Feuerstein Page 30

32 IDE-Integrated Code Analyzers Automatically check code against a set of rules and recommendations. Toad and SQL Navigator offer CodeXpert, which is largely driven by ideas in my Oracle PL/SQL Best Practices book. Copyright 2008 Steven Feuerstein Page 31

33 Guarantee Application Success You need to... Prove correctness don't just hope and pray. Make sure it is fast enough. Write readable, maintainable code. We can do all of this, but only if we... Think about the future. Don't just code for today. Take full advantage of PL/SQL's features. Automate the testing process. Ask our managers to protect us from deadline pressures. Copyright 2008 Steven Feuerstein Page 32

34 And some other incredibly fantastic and entertaining websites for PL/SQL Copyright 2008 Steven Feuerstein Page 33

Three Simple Steps to Improving PL/SQL Code Quality

Three Simple Steps to Improving PL/SQL Code Quality Three Simple Steps to Improving PL/SQL Code Quality Steven Feuerstein Oracle Developer Advocate for PL/SQL Oracle Corporation Email: steven.feuerstein@oracle.com Twitter: @sfonplsql Blog: stevenfeuersteinonplsql.blogspot.com

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

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

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

Use PL/SQL to automate standards compliance. Lewis Cunningham Data Architect and ACE Director

Use PL/SQL to automate standards compliance. Lewis Cunningham Data Architect and ACE Director Use PL/SQL to automate standards compliance Lewis Cunningham Data Architect and ACE Director Introduction Oracle ACE Director Author Consultant Data Architect Blogger, An Expert's Guide to Oracle Technology

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

1 of 5 3/28/2010 8:01 AM Unit Testing Notes Home Class Info Links Lectures Newsgroup Assignmen [Jump to Writing Clear Tests, What about Private Functions?] Testing The typical approach to testing code

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

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

Developers and DBAs. Farmers and City Slickers have different mindsets

Developers and DBAs. Farmers and City Slickers have different mindsets Developers and DBAs Farmers and City Slickers have different mindsets About ~ Øyvind Isene DBA Consultant working for Bicon in Oslo Optimization and helping developers with db OUGN and the Oracle community

More information

Promoting Component Architectures in a Dysfunctional Organization

Promoting Component Architectures in a Dysfunctional Organization Promoting Component Architectures in a Dysfunctional Organization by Raj Kesarapalli Product Manager Rational Software When I first began my career as a software developer, I didn't quite understand what

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

Introduction to Programming

Introduction to Programming CHAPTER 1 Introduction to Programming Begin at the beginning, and go on till you come to the end: then stop. This method of telling a story is as good today as it was when the King of Hearts prescribed

More information

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

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

Software Design Models, Tools & Processes. Lecture 6: Transition Phase Cecilia Mascolo

Software Design Models, Tools & Processes. Lecture 6: Transition Phase Cecilia Mascolo Software Design Models, Tools & Processes Lecture 6: Transition Phase Cecilia Mascolo UML Component diagram Component documentation Your own classes should be documented the same way library classes are.

More information

CS 142 Style Guide Grading and Details

CS 142 Style Guide Grading and Details CS 142 Style Guide Grading and Details In the English language, there are many different ways to convey a message or idea: some ways are acceptable, whereas others are not. Similarly, there are acceptable

More information

ICANN and Technical Work: Really? Yes! Steve Crocker DNS Symposium, Madrid, 13 May 2017

ICANN and Technical Work: Really? Yes! Steve Crocker DNS Symposium, Madrid, 13 May 2017 ICANN and Technical Work: Really? Yes! Steve Crocker DNS Symposium, Madrid, 13 May 2017 Welcome, everyone. I appreciate the invitation to say a few words here. This is an important meeting and I think

More information

Quest Code Tester for Oracle 3.1. Installation and Configuration Guide

Quest Code Tester for Oracle 3.1. Installation and Configuration Guide Quest Code Tester for Oracle 3.1 Installation and Configuration Guide Contents Introduction to this Guide 3 Installation and Administration of Code Tester for Oracle 4 System Requirements 5 Test Repository

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

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

Software Design and Analysis CSCI 2040

Software Design and Analysis CSCI 2040 Software Design and Analysis CSCI 2040 Introduce two important development practices in the context of the case studies: Test-Driven Development Refactoring 2 Logic is the art of going wrong with confidence

More information

Testing in a Test-driven World

Testing in a Test-driven World KW1 Keynote 5/1/2013 8:30:00 AM Testing in a Test-driven World Presented by: Jeff Payne Coveros, Inc. Brought to you by: 340 Corporate Way, Suite 300, Orange Park, FL 32073 888-268-8770 904-278-0524 sqeinfo@sqe.com

More information

Types of Software Testing: Different Testing Types with Details

Types of Software Testing: Different Testing Types with Details Types of Software Testing: Different Testing Types with Details What are the different Types of Software Testing? We, as testers are aware of the various types of Software Testing such as Functional Testing,

More information

10 Strategies for Effective Marketing Campaigns

10 Strategies for Effective  Marketing Campaigns 10 Strategies for Effective Email Marketing Campaigns Most people do not send effective email messages. I know. I spend a lot of time analyzing email messages for our clients, and measuring and tracking

More information

Testing. Prof. Clarkson Fall Today s music: Wrecking Ball by Miley Cyrus

Testing. Prof. Clarkson Fall Today s music: Wrecking Ball by Miley Cyrus Testing Prof. Clarkson Fall 2017 Today s music: Wrecking Ball by Miley Cyrus Review Previously in 3110: Modules Specification (functions, modules) Today: Validation Testing Black box Glass box Randomized

More information

Partial Backup Interview Questions And Answers In Oracle 10g Pl Sql

Partial Backup Interview Questions And Answers In Oracle 10g Pl Sql Partial Backup Interview Questions And Answers In Oracle 10g Pl Sql You'll find out here all Upwork (odesk) test answers for Oracle 10g Test 2015. Questions and answers are regularly updated. of Cover

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

The Stack, Free Store, and Global Namespace

The Stack, Free Store, and Global Namespace Pointers This tutorial is my attempt at clarifying pointers for anyone still confused about them. Pointers are notoriously hard to grasp, so I thought I'd take a shot at explaining them. The more information

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

CS103 Spring 2018 Mathematical Vocabulary

CS103 Spring 2018 Mathematical Vocabulary CS103 Spring 2018 Mathematical Vocabulary You keep using that word. I do not think it means what you think it means. - Inigo Montoya, from The Princess Bride Consider the humble while loop in most programming

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

Wednesday. Wednesday, September 17, CS 1251 Page 1

Wednesday. Wednesday, September 17, CS 1251 Page 1 CS 1251 Page 1 Wednesday Wednesday, September 17, 2014 8:20 AM Here's another good JavaScript practice site This site approaches things from yet another point of view it will be awhile before we cover

More information

Debugging. CSE 2231 Supplement A Annatala Wolf

Debugging. CSE 2231 Supplement A Annatala Wolf Debugging CSE 2231 Supplement A Annatala Wolf Testing is not debugging! The purpose of testing is to detect the existence of errors, not to identify precisely where the errors came from. Error messages

More information

Announcements. Chapter 7 for Friday

Announcements. Chapter 7 for Friday Announcements Chapter 6 for today Chapter 7 for Friday Announcement New Drop-In Lab added Wednesdays, 1:30-2:30 (MGH 044) All the other drop-in labs are in MGH 430: Monday 4:30-5:20pm Wednesday 10:30-12:20pm

More information

TestComplete 3.0 Overview for Non-developers

TestComplete 3.0 Overview for Non-developers TestComplete 3.0 Overview for Non-developers Copyright 2003 by Robert K. Leahey and AutomatedQA, Corp. All rights reserved. Part : Table of Contents Introduction 1 About TestComplete 1 Basics 2 Types of

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

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

Exploring Edition-Based Redefinition

Exploring Edition-Based Redefinition Exploring Edition-Based Redefinition Presented by: John Jay King King Training Resources - john@kingtraining.com Download this paper from: http://www.kingtraining.com 1 Session Objectives Understand the

More information

CO Oracle Database 12c: Advanced PL/SQL

CO Oracle Database 12c: Advanced PL/SQL CO-80343 Oracle Database 12c: Advanced PL/SQL Summary Duration 3 Days Audience Application Developers and Database Administrators Level Professional Technology Oracle Database 12c Delivery Method Instructor-led

More information

A PROGRAM IS A SEQUENCE of instructions that a computer can execute to

A PROGRAM IS A SEQUENCE of instructions that a computer can execute to A PROGRAM IS A SEQUENCE of instructions that a computer can execute to perform some task. A simple enough idea, but for the computer to make any use of the instructions, they must be written in a form

More information

Checklist for Testing of Web Application

Checklist for Testing of Web Application Checklist for Testing of Web Application Web Testing in simple terms is checking your web application for potential bugs before its made live or before code is moved into the production environment. During

More information

For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to

For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. Contents at a Glance About the Author...

More information

shortcut Tap into learning NOW! Visit for a complete list of Short Cuts. Your Short Cut to Knowledge

shortcut Tap into learning NOW! Visit  for a complete list of Short Cuts. Your Short Cut to Knowledge shortcut Your Short Cut to Knowledge The following is an excerpt from a Short Cut published by one of the Pearson Education imprints. Short Cuts are short, concise, PDF documents designed specifically

More information

Ruby on Rails Welcome. Using the exercise files

Ruby on Rails Welcome. Using the exercise files Ruby on Rails Welcome Welcome to Ruby on Rails Essential Training. In this course, we're going to learn the popular open source web development framework. We will walk through each part of the framework,

More information

COURSE 11 DESIGN PATTERNS

COURSE 11 DESIGN PATTERNS COURSE 11 DESIGN PATTERNS PREVIOUS COURSE J2EE Design Patterns CURRENT COURSE Refactoring Way refactoring Some refactoring examples SOFTWARE EVOLUTION Problem: You need to modify existing code extend/adapt/correct/

More information

TestBase's Patented Slice Feature is an Answer to Db2 Testing Challenges

TestBase's Patented Slice Feature is an Answer to Db2 Testing Challenges Db2 for z/os Test Data Management Revolutionized TestBase's Patented Slice Feature is an Answer to Db2 Testing Challenges The challenge in creating realistic representative test data lies in extracting

More information

CMSC 132: OBJECT-ORIENTED PROGRAMMING II

CMSC 132: OBJECT-ORIENTED PROGRAMMING II CMSC 132: OBJECT-ORIENTED PROGRAMMING II Program Testing Department of Computer Science University of Maryland, College Park Debugging Is Harder Than Coding! Debugging is twice as hard as writing the code

More information

Week 5: Background. A few observations on learning new programming languages. What's wrong with this (actual) protest from 1966?

Week 5: Background. A few observations on learning new programming languages. What's wrong with this (actual) protest from 1966? Week 5: Background A few observations on learning new programming languages What's wrong with this (actual) protest from 1966? Programmer: "Switching to PL/I as our organization's standard programming

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

Database Developers Forum APEX

Database Developers Forum APEX Database Developers Forum APEX 20.05.2014 Antonio Romero Marin, Aurelien Fernandes, Jose Rolland Lopez De Coca, Nikolay Tsvetkov, Zereyakob Makonnen, Zory Zaharieva BE-CO Contents Introduction to the Controls

More information

Rapid Software Testing Guide to Making Good Bug Reports

Rapid Software Testing Guide to Making Good Bug Reports Rapid Software Testing Guide to Making Good Bug Reports By James Bach, Satisfice, Inc. v.1.0 Bug reporting is a very important part of testing. The bug report, whether oral or written, is the single most

More information

Book Typography: A Designer's Manual

Book Typography: A Designer's Manual Book Typography: A Designer's Manual Michael and Susan Wightman Mitchell Click here if your download doesn"t start automatically Book Typography: A Designer's Manual Michael and Susan Wightman Mitchell

More information

Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia

Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia The goal for this tutorial is to make sure that you understand a few key concepts related to programming, and that you know the basics

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

Hardware versus software

Hardware versus software Logic 1 Hardware versus software 2 In hardware such as chip design or architecture, designs are usually proven to be correct using proof tools In software, a program is very rarely proved correct Why?

More information

Oracle Database 10g The Self-Managing Database

Oracle Database 10g The Self-Managing Database Oracle Database 10g The Self-Managing Database Benoit Dageville Oracle Corporation benoit.dageville@oracle.com Page 1 1 Agenda Oracle10g: Oracle s first generation of self-managing database Oracle s Approach

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 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

Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting

Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting Slide 1: Cover Welcome to lesson 3 of the db2 on Campus lecture series. Today we're going to talk about tools and scripting, and this is part 1 of 2

More information

Programming Style. Quick Look. Features of an Effective Style. Naming Conventions

Programming Style. Quick Look. Features of an Effective Style. Naming Conventions Programming Style Quick Look An effective programming style helps you write code that is easier to understand, debug, maintain, and port from system to system. This article discusses the general features

More information

Hi everyone. Starting this week I'm going to make a couple tweaks to how section is run. The first thing is that I'm going to go over all the slides

Hi everyone. Starting this week I'm going to make a couple tweaks to how section is run. The first thing is that I'm going to go over all the slides Hi everyone. Starting this week I'm going to make a couple tweaks to how section is run. The first thing is that I'm going to go over all the slides for both problems first, and let you guys code them

More information

Ms Sql Server 2008 R2 Check If Temp Table Exists

Ms Sql Server 2008 R2 Check If Temp Table Exists Ms Sql Server 2008 R2 Check If Temp Table Exists I need to store dynamic sql result into a temporary table #Temp. Dynamic SQL Query How to check if column exists in SQL Server table 766 Insert results.

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

Sql Server 2008 Query Table Schema Management Studio Create New

Sql Server 2008 Query Table Schema Management Studio Create New Sql Server 2008 Query Table Schema Management Studio Create New rename a table in SQL Server 2016 by using SQL Server Management Studio or new features or changes to existing features in Microsoft SQL

More information

Memory Addressing, Binary, and Hexadecimal Review

Memory Addressing, Binary, and Hexadecimal Review C++ By A EXAMPLE Memory Addressing, Binary, and Hexadecimal Review You do not have to understand the concepts in this appendix to become well-versed in C++. You can master C++, however, only if you spend

More information

Introduction to Object-Oriented Modelling and UML

Introduction to Object-Oriented Modelling and UML Naming Conventions Naming is not a side issue. It is one of the most fundamental mechanisms. This section deals with good and bad naming in models and code. This section is based on Stephen Kelvin Friedrich

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

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

These are notes for the third lecture; if statements and loops.

These are notes for the third lecture; if statements and loops. These are notes for the third lecture; if statements and loops. 1 Yeah, this is going to be the second slide in a lot of lectures. 2 - Dominant language for desktop application development - Most modern

More information

Cognitive Disability and Technology: Universal Design Considerations

Cognitive Disability and Technology: Universal Design Considerations Cognitive Disability and Technology: Universal Design Considerations Clayton Lewis Coleman Institute for Cognitive Disabilities RERC-ACT clayton.lewis@colorado.edu Prepared for AUCD Training Symposium,

More information

THE OFFICIAL (ISC)2 GUIDE TO THE CCSP CBK FROM SYBEX DOWNLOAD EBOOK : THE OFFICIAL (ISC)2 GUIDE TO THE CCSP CBK FROM SYBEX PDF

THE OFFICIAL (ISC)2 GUIDE TO THE CCSP CBK FROM SYBEX DOWNLOAD EBOOK : THE OFFICIAL (ISC)2 GUIDE TO THE CCSP CBK FROM SYBEX PDF Read Online and Download Ebook THE OFFICIAL (ISC)2 GUIDE TO THE CCSP CBK FROM SYBEX DOWNLOAD EBOOK : THE OFFICIAL (ISC)2 GUIDE TO THE CCSP CBK FROM Click link bellow and free register to download ebook:

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

Welcome to this IBM podcast, Realizing More. Value from Your IMS Compiler Upgrade. I'm Kimberly Gist

Welcome to this IBM podcast, Realizing More. Value from Your IMS Compiler Upgrade. I'm Kimberly Gist IBM Podcast [ MUSIC ] Welcome to this IBM podcast, Realizing More Value from Your IMS Compiler Upgrade. I'm Kimberly Gist with IBM. System z compilers continue to deliver the latest programming interfaces

More information

05. SINGLETON PATTERN. One of a Kind Objects

05. SINGLETON PATTERN. One of a Kind Objects BIM492 DESIGN PATTERNS 05. SINGLETON PATTERN One of a Kind Objects Developer: What use is that? Guru: There are many objects we only need one of: thread pools, caches, dialog boxes, objects that handle

More information

Oracle. Exam Questions 1Z Oracle 11g: Advanced PL/SQL. Version:Demo. 1Z0-146 Exam Questions Demo https://www.passcertsure.

Oracle. Exam Questions 1Z Oracle 11g: Advanced PL/SQL. Version:Demo. 1Z0-146 Exam Questions Demo https://www.passcertsure. Oracle Exam Questions 1Z0-146 Oracle 11g: Advanced PL/SQL Version:Demo 1. Identify two strategies against SQL injection. (Choose two.) A. Using parameterized queries with bind arguments. B. Use subprograms

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

Oracle Application Express How It s Made November 15, 2011

Oracle Application Express How It s Made November 15, 2011 Oracle Application Express How It s Made November 15, 2011 Joel R. Kallman Agenda Purpose A Typical Release Cycle How It s Made Questions & Answers Purpose Case Study in Application

More information

Product Review: James F. Koopmann Pine Horse, Inc. SoftTree s SQL Assistant. Product Review: SoftTree s SQL Assistant

Product Review: James F. Koopmann Pine Horse, Inc. SoftTree s SQL Assistant. Product Review: SoftTree s SQL Assistant Product Review: James F. Koopmann Pine Horse, Inc. SoftTree s SQL Assistant Introduction As much as database vendors would like us to believe that databases are easy to use, databases in fact become more

More information

Etiquette FOR A BUSY WORLD. Brevity can be off-putting. Always reply

Etiquette FOR A BUSY WORLD. Brevity can be off-putting. Always reply Email Etiquette FOR A BUSY WORLD How many email messages do you send every day? If you re like most of us, it s dozens, perhaps scores of them. Now, are you doing anything to make the recipients of your

More information

9 th CA 2E/CA Plex Worldwide Developer Conference 1

9 th CA 2E/CA Plex Worldwide Developer Conference 1 1 Introduction/Welcome Message Organizations that are making major changes to or replatforming an application need to dedicate considerable resources ot the QA effort. In this session we will show best

More information

The Z-Files: Field reports from the world of business critical PHP applications

The Z-Files: Field reports from the world of business critical PHP applications The Z-Files: Field reports from the world of business critical PHP applications By Axel Schinke Senior Manager of Global Operations for Global Services About this webinar Field reports from Zend Consulting

More information

Database Programming with PL/SQL

Database Programming with PL/SQL Database Programming with PL/SQL 12-2 Objectives This lesson covers the following objectives: Identify the benefits of the NOCOPY hint and the DETERMINISTIC clause Create subprograms which use the NOCOPY

More information

Sample Exam ISTQB Advanced Test Analyst Answer Rationale. Prepared By

Sample Exam ISTQB Advanced Test Analyst Answer Rationale. Prepared By Sample Exam ISTQB Advanced Test Analyst Answer Rationale Prepared By Released March 2016 TTA-1.3.1 (K2) Summarize the generic risk factors that the Technical Test Analyst typically needs to consider #1

More information

Most of the class will focus on if/else statements and the logical statements ("conditionals") that are used to build them. Then I'll go over a few

Most of the class will focus on if/else statements and the logical statements (conditionals) that are used to build them. Then I'll go over a few With notes! 1 Most of the class will focus on if/else statements and the logical statements ("conditionals") that are used to build them. Then I'll go over a few useful functions (some built into standard

More information

Up and Running Software The Development Process

Up and Running Software The Development Process Up and Running Software The Development Process Success Determination, Adaptative Processes, and a Baseline Approach About This Document: Thank you for requesting more information about Up and Running

More information

Basic Keywords Practice Session

Basic Keywords Practice Session Basic Keywords Practice Session Introduction In this article from my free Java 8 course, we will apply what we learned in my Java 8 Course Introduction to our first real Java program. If you haven t yet,

More information

Compilers. Prerequisites

Compilers. Prerequisites Compilers Prerequisites Data structures & algorithms Linked lists, dictionaries, trees, hash tables Formal languages & automata Regular expressions, finite automata, context-free grammars Machine organization

More information

Communicating Through Top 10 Dos and Donʼts! Presented by Geri Ann Fuller!

Communicating Through   Top 10 Dos and Donʼts! Presented by Geri Ann Fuller! Communicating Through E-mail: Top 10 Dos and Donʼts! Presented by Geri Ann Fuller! 1. Donʼt put anything in an e-mail that you are not willing to see on the front page of the newspaper." Most companies

More information

Errors. Lecture 6. Hartmut Kaiser hkaiser/fall_2011/csc1254.html

Errors. Lecture 6. Hartmut Kaiser  hkaiser/fall_2011/csc1254.html Hartmut Kaiser hkaiser@cct.lsu.edu http://www.cct.lsu.edu/ hkaiser/fall_2011/csc1254.html 2 Abstract When we program, we have to deal with errors. Our most basic aim is correctness, but we must deal with

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

Application Development at

Application Development at Application Development at Abstract: This paper uncovers the diversity of Congruent s Application Services and its Delivery excellence. It also analyzes its processes, practices & tools that sets Congruent

More information

The first program: Little Crab

The first program: Little Crab Chapter 2 The first program: Little Crab topics: concepts: writing code: movement, turning, reacting to the screen edges source code, method call, parameter, sequence, if-statement In the previous chapter,

More information

Volume 8, Issue 1 Payment Processing News from Shift4 Corporation November 2005

Volume 8, Issue 1 Payment Processing News from Shift4 Corporation November 2005 Volume 8, Issue 1 Payment Processing News from Shift4 Corporation November 2005 that attended and spoke at the event are offering a discounted rate to Shift4 merchants. There contact information is below.

More information

Learning By Sample Series. Learning By Sample - T-SQL : Part 3

Learning By Sample Series. Learning By Sample - T-SQL : Part 3 Learning By Sample Series Learning By Sample - T-SQL : Part 3 w w w. B u k a n S e m b a r a n g. I n f o 2 0 1 0 Foreword Learning By Sample? So, why should I made this tutorial freely accessed by everyone?

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

Read & Download (PDF Kindle) XML For Dummies

Read & Download (PDF Kindle) XML For Dummies Read & Download (PDF Kindle) XML For Dummies See how XML works for business needs and RSS feeds Create consistency on the Web, or tag your data for different purposes Tag -- XML is it! XML tags let you

More information

Why Deprecating async() is the Worst of all Options

Why Deprecating async() is the Worst of all Options Doc No: WG21 N3780 Date: 2013-09-26 Reply to: Nicolai Josuttis (nico@josuttis.de) Subgroup: SG1 Concurrency Prev. Version: none Why Deprecating async() is the Worst of all Options The concurrency working

More information

Chapter 5 Errors. Bjarne Stroustrup

Chapter 5 Errors. Bjarne Stroustrup Chapter 5 Errors Bjarne Stroustrup www.stroustrup.com/programming Abstract When we program, we have to deal with errors. Our most basic aim is correctness, but we must deal with incomplete problem specifications,

More information

Introduction to Programming Style

Introduction to Programming Style Introduction to Programming Style Thaddeus Aid The IT Learning Programme The University of Oxford, UK 30 July, 2013 Abstract Programming style is the part of the program that the human reads and the compiler

More information