Problem solve Get help with specific problems with your technologies, process and projects.

Application development: PL/SQL, Java or C++?

I have developed an inventory control application in MS Access & VBA that has been instrumental in saving my company $6 million so far, with at least another $4 million to 5 million over the next 18 months. We are a processing plant and part of a global group of mining companies. My tool has sparked interest across the group and I am about to release an evaluation copy to other sites. Our corporation is in the process of aggressively standardizing on SAP (and I extract the data from our SAP system)with Oracle of various flavors being the underlying DB as far as I can tell.

Access is a superb prototyping tool and an excellent stand-alone platform, however, I am considering something rather more professional. For example, to generate the statistical data for 23,000 items with 50 months consumption in VBA takes about 45 minutes, tests indicate the same can be done in C++ in under a minute, and the last time I used PL/SQL to calculate Single Exponentially Smoothed Forecasts for the same data set, it was done in a matter of seconds.

I have a little Oracle knowledge and have Oracle Enterprise Edition Release 2 V8.1.6 on my home machine, I had been studying for certification but dropped it in favour of a B.Comp Sc which I have commenced this year. And now to the question.

What would be the best way to proceed? Learn enough PL/SQL to write the statistical and forecasting engine and use Java to develop a front end? Or C++ and Java? Or Access and ODBC? All of this of course would depend on me convincing our corporate IT department to let me write an application that digs under SAP, (I know when I first asked for access to SQLplus to get to our data under SAP it felt like I had offered to buy the IT managers daughter).

Looking forward to hearing what real Developers/Analysts would do (I am but a humble storeman).

When developing code, it's best from an Oracle standpoint to live by the following mantra:

1. If it can be done in PL/SQL, do it in PL/SQL first! This is a language native to the database and generally performs the best (but not always)!!!
2. If it can't be done in PL/SQL, attempt to do it in Java, hopefully in Java Stored Procedures. This gives you flexibility while also letting you run your code in the database. You can also port Java procedures to multiple platforms without recompiling the code.
3. If #1 and #2 are not possible, consider using C external procedures.

The above mantra pertains to code that will run directly against the database. As you may be well aware, the application may not be able to run entirely in the database. This is especially true of GUI based applications.

When I get involved with developing new applications, I try to remain as vendor neutral as possible in hopes of achieving portability. This is why I favor Web-based applications with Java in the middle tier. If the application is Web-based, then any Web browser running on any platform can run the application. And your deployment problems are significantly reduced. Let the Web application server in the middle tier perform most of the application logic. If you use something like Java Server Pages, then you are not tied to any specific hardware or application server.

For More Information

  • What do you think about this answer? E-mail the editors at editor@searchDatabase.com with your feedback.
  • The Best Oracle Web Links: tips, tutorials, scripts, and more.
  • Have an Oracle or SQL tip to offer your fellow DBAs and developers? The best tips submitted will receive a cool prize. Submit your tip today!
  • Ask your technical Oracle and SQL questions -- or help out your peers by answering them -- in our live discussion forums.
  • Ask the Experts yourself: Our SQL, database design, Oracle, SQL Server, DB2, metadata, object-oriented and data warehousing gurus are waiting to answer your toughest questions.

Dig Deeper on Using Oracle PL-SQL

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.