Oracle OpenSource pains

Last couple months spent developing JavaScript applications made me think about tools/applications that I would need for same comfort of development in PL/SQL. It always came down to one thing - packages = module = components.

The best name would be module as package has a different meaning in Oracle world.

By module I mean

  • bundle of
    • stored procedures
    • DDL & DML scripts
    • install/uninstall/upgrade SQL*Plus scripts

There is no common, industry standard how to create modules of Oracle DB code (or am I missing something?). Oracle is developing the Cart thing, which is currently exposed through Oracle SQL Developer and sadly the only way to use (in SQL Developer) is to deploy it to Oracle Cloud.

Also what we need is definition of the way how to package, distribute, install/uninstall modules into your code base and then into Oracle Database. How to define inter-module dependencies and all that stuff that is provided by e.g. npmjs - which is great source of inspiration for me.

I’m working on draft for such a spec, which is based on npmjs’ definition for package.json. You can find it here. Any comments/PRs are greatly welcomed.

Tradaa!!!

So I begin with OpenSource. 3…2…1…NOW!!! Actually I did couple months ago, but sometimes it takes a longer time to publish something, than to do it.

I’ve developed a lot. I’ve deleted more code with backspace than some of my more senior colleagues have ever written.

There’s only one catch. Almost all of it has been in PL/SQL or SQL*Plus. It’s ugly, but powerful. Even COBOL is more sexy than PL/SQL and programming in SQL*Plus can be even worse than this cutie. But still it can be fun.

There was huge reinventing of wheel on almost every project I came to. And I’ve got tired of that.

I had a long pause in my PL/SQL programming quest and spent some time developing in JavaScript. And I found that hidden world of OpenSource software. And I was amazed and decided to share some of my knowledge.

So here’s my contribution to my future self and to humanity - in PL/SQL and SQL*Plus.

Enjoy. Comment. Fork. Post PRs. Any form of interaction is greatly welcomed.


(most of my projects I maintain in Principal engineering organization, company I work for)