In the article, Create a Persistent Data Structure, we learned the fundamental theories to provide versionable data management within a database. Today’s article moves out of the abstract theory and into a working code sample demonstrating how to create a versionable database using the command pattern.
(more…)
November 3, 2013
Using the Command Pattern to Store Versionable Data
October 19, 2013
Create a Persistent Data Structure
Occasionally I encounter a business need to track all changes allowing a user to view the data as it currently is stored or as it was stored. Having the ability to view the structure of a system from a previous point of reference is called a historical database or a persistent data structure. In this article we will review various strategies to create a persistent data structure. In the next article I will demonstrate how to create a persistent data structure.
(more…)
September 21, 2013
Microsoft SQL Server Call Stack: Adding The Missing Oracle Feature
A call stack can be an invaluable tool for any developer’s toolbox. The call stack shows from point-of-entry to the currently executing procedure what methods were called giving helpful hints as to where a problem in the logic hides. While the call stack is readily available to an Oracle object via the DBMS_Utility.Format_Call_Stack
method, as of Microsoft SQL Server 2012 there is no such capability. In today’s article I will demonstrate how to make your own DBMS_Utility.Format_Call_Stack
method in SQL Server.
(more…)
August 31, 2013
The Odd Relationship Between Null and Empty String in Oracle PL/SQL
SQL Standards dictate a very unique behavior for null values. You would think these behaviors would be consistent across databases. This article is for you Microsoft SQL developers who’ve been tossed into the Oracle world and are confused by the appalling violation of null behavior.
(more…)
August 23, 2013
Programmatically Validating Oracle Packages
Whenever an Oracle view, function, procedure or package header is modified the object is invalidated and any objects that call the invalidated object become invalid. To avoid errors these objects need to be compiled. The purpose of this article is to demonstrate how to identify the invalid objects compiling them in the correct order so that all objects can be validated in one pass while providing the ability to track which objects fail to validate.