PL/SQL “Starter” Framework

The PL/SQL Starter application framework is a collection of packages, views and tables to simplify and jump start your custom Oracle-based application. These are well-documented, tested, proven* and easy to use. Instead of writing your own, adopt these components and save months of design and development. The framework is open source and lightweight. It only takes 30 seconds to install on an existing Oracle database.

  1. Download it from SourceForge or GitHub. Unzip it.
  2. Read the instructions at the top of the first install script in the folder. After installation, poke around, explore, skim the declarations in the package specification files.
  3. Later read the user guide in the Docs subfolder to better understand all its features . It comes with a sample application built on the framework to demonstrate how the pieces can be used. The Standards folder contains a database design guide, a naming standard, a PL/SQL programming standard and an abbreviation guide. There is also a regression test suite that you can use to re-test everything in case you customize the framework.

Features include:

  • Standard RBAC authorization data model with role hierarchy
  • Dynamic debugging, timing and logging
  • Table-driven application properties
  • Generic fine-grained column auditing framework
  • Standardized exception handling and assertions
  • Centralized application messages
  • Emailing and file manipulation from the database
  • Application, session, database, end user and connection metadata
  • DDL library for Agile database build environments
  • Named process locking (pessimistic)
  • Directory server integration (ldap operations from the database)
  • Common string, date and number manipulation routines

The Simple version of the framework is meant for single-schema applications. It only offers logging, error handling and table-driven parameters (with a few extra supporting packages for writing to screen and file, and manipulating dates, strings and numbers).

The full Starter framework is meant for multiple applications resident in multiple schemas on the same database, where the common framework is shared between them all. It is more complete and comes with tests, full documentation, sample applications and more. Download  “Starter” for 9i to 11g or “Starter_12c” for 12.1+)

* Much of it was written in 1997 while I consulted for the largest telecom companies in America. It traveled with me to each client and saved lots of time with each one. It was hardened in very high volume systems which process millions of call records per day, and later, billions of utility power records per day. In late 1997 it was greatly expanded and included everything necessary to write a web application using pure PL/SQL; it was very similar to what we know as love as APEX. A few robust systems were built on it that are still in use today. But its weakness was the visual page editor; it didn’t have one. Stripped down in 2004 to the essentials, then re-written and tightened in 2007, I released it as open-source to the public. It has been updated as new versions of Oracle were released. Please email me or open an issue through github if you find a bug or desire an enhancement.

Why the name “Starter?” I happen to be an aficionado of sourdough bread, which requires a dough starter kept in the fridge. This is a precious, proven resource, sometimes handed down for generations so that the bread leavened by it retains consistent flavor and character. You can make your own starter, but it takes a long time and there’s no way to know if you’ve caught a good strain of yeast until it’s too late, often resulting in the loss of time, the starter attempt and the baked bread. Using a hardy, pre-built, heavily tested framework does the same for boosting software development, giving consistently good results.