Skip to content
Menu
dbsherpa.com
  • About dbSherpa
  • History of dbSherpa
  • Papers and Presentations
  • PL/SQL “Starter” Framework
dbsherpa.com

PL/SQL “Starter” Framework

The PL/SQL “Starter”1 application framework is a collection of packages, views, and tables designed to simplify and jump-start the development of custom Oracle-based applications.

These are well-documented, tested, proven2 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 use,r 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+).

  1. 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. ↩︎
  2. Much of this framework 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 that processed 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 and love as Oracle 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 ↩︎

Recent Posts

  • PostgreSQL Query Spelunking with pg_stat_statements
  • CREATE VIEW AS SELECT * does not dynamically adjust to the underlying object
  • BULK COLLECT and COUNT() do not raise NO_DATA_FOUND
  • Dropping a View Drops the Instead-of Triggers

Recent Comments

No comments to show.
©2025 dbsherpa.com | WordPress Theme: EcoCoded