We build software using Hudson and Maven. We have C#, java and last, but not least PL/SQL sources (sprocs, packages, DDL, crud)
For C# and Java we do unit tests and code analysis, but we don't really know the health of our PL/SQL sources before we actually publish them to the target database.
There are a couple of things we wan't to test in the following priority:
Also,
We did a little research and found the following tools that could potencially help:
So far, Toad for Oracle together with Sonar seems to be an elegant solution. But may be we are missing something here?
Any ideas? Other products? Experiences?
_______________ has made PL/SQL code run faster without requiring any additional work on the part of the programmer. Explanation: An Oracle database is a collection of data treated as a unit.
I think that this blog describes the needed process:
http://www.theserverlabs.com/blog/?p=435
Please check and let me know what you think about it.
Our approach is to keep each database object (tables, views, functions, packages, sprocs etc) in its own file under source control and have an integration server (TeamCity, Hudson etc) do a nightly build of the database - from source - where it drops and recreates the schema before checking for compilation errors in the user_errors
system table. This lets you know when someone has introduced compilation errors into the build.
The next step is to use something like PLUTO to add unit tests to your PL/SQL code and add those into the nightly build task. For us, this has involved having sample test datasets (also under source control) that allow us to get the database to a "known state" for the purposes of testing.
I've not found anything that helps us much with any of the above so it's mainly a collection of Ant tasks, custom shell scripts and wizardry, which basically apply the required DDL to an empty database and use DBMS_UTILITY.COMPILE_SCHEMA()
to, uh, compile the schema. You can add more fancy stuff later, like back-tracing objects which fail to compile or fail tests to a specific submit in source control, and issue "blame mail".
I'd be really interested to see if anyone else has a better approach or if there's an off-the-shelf product that does this for me!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With