Josh-CO Dev

Solving the worlds problems one line of code at a time.


Leave a comment

ORA-24338: Statement Handle Not Executed

I ran into some problems yesterday when I recompiled an application for the first time in a few months. I started getting an Oracle error stating: Statement handle not executed. Simple enough. My concern was that my database code had not changed since March, only my application code. This code is pretty complex anyway.

I have to fire off a thread that runs a big process that takes about 15 minutes and dumps the data into a table. Another thread then monitors the table and waits for the datadump to finish. After staring at my code for a while, I found this:

 PROCEDURE createReportingData (
pYear IN NUMBER,
pMonth IN NUMBER,
pDay IN NUMBER,
pUnitID IN VARCHAR2,
pGenerate IN NUMBER,
pDaily IN NUMBER)
presults OUT treturncursor)
IS
statusout INTEGER;
error_msg VARCHAR2(1000);
v_strSql VARCHAR2(4000);
v_strSql2 VARCHAR2(500);
BEGIN

The problem is the presults OUT treturncursor. My logic was expecting to output a cursor, which it used to do before the change in March. I simply commented out this line in the spec and body, and now everything works like a champ.


Leave a comment

Developer Learning Program – First Meeting

Apparently our first meeting instituting the developer learning program was a huge success. We gave a quick overview on LINQ and presented a live demo where we wrote a linq query, did some conditional statements, a few joins, and showed off some of the LINQ extensions. It was well received by both developers and management and really seemed to open up some eyes. Be it for better or worse, this may get us too much attention!

 

The only issues we really ran into is that it is really a change in thinking for our devs. We do things the old way. We pass all db calls through a webservice and into a data layer where stored procs are called and returned via a dataset. Honestly, LINQ is near useless in this type of environment. We explained how this methodology is pretty “chatty” and will result in slower response times. Unless you are posting data frequently or have a real time app, you can generally pull larger sets of data one time and then filter the data via LINQ. This is where it will fit in with our organization.