Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Does runtime processing of stored procedure parameters vary between Oracle releases?

Re: Does runtime processing of stored procedure parameters vary between Oracle releases?

From: Richard Piasecki <usenet2_at_ogoent.com>
Date: 24 Jul 2007 14:13:04 -0500
Message-ID: <s4jca3936mgoe0n301avir5v9fltcnfpgu@4ax.com>

The application is clearly using ODBC, so I would want to know about the differences in the ODBC drivers used. For example, perhaps the ODBC driver used when Oracle 8 and Oracle 9 were the database releases was written by Microsoft and was able to handle the call (don't know how, but maybe). But, maybe now, with Oracle 10g, you're using an ODBC driver written by Oracle which isn't as understanding. That's just an example possibility, of course. The point is I would want to know if the driver has changed and how.

But, in all likelihood, the problem is the fact that they are lying to you about the code never having been changed.

On Mon, 23 Jul 2007 18:34:43 -0500, Eric Chevalier <etech_at_tulsagrammer.com> wrote:

>I work for an ISV that acquired several applications last year from
>another firm (call it "foobar") which wanted to concentrate on its "core
>competencies". One of those applications is designed to work with either
>Oracle or MS SQL Server.
>
>During the installation of this product, a script is run to create a
>number of stored procedures. This script includes:
>
> CREATE OR REPLACE PACKAGE NS_TYPES AS
> TYPE RCT IS REF CURSOR;
> END NS_TYPES;
>
> CREATE OR REPLACE PROCEDURE nsGetGroups(RC1 IN OUT NS_TYPES.RCT) as
> BEGIN
> OPEN RC1 FOR
> SELECT groupid, groupname, grouptype, grouprivate, groupdesc
> FROM nsgroup ORDER BY groupid;
> END nsGetGroups;
>
>The application itself is written in C++/MFC. At runtime, the
>nsGetGroups function is called by the code:
>
> ret = SQLExecDirect(hStmt2, "{call nsGetGroups()}", SQL_NTS);
>
>When the application is executed against Oracle 10g, the call returns
>the error:
>
> ORA-06550: line 1, column 8:.PLS-00306: wrong number or types of
> arguments in call to 'NSGETGROUPS'.
> ORA-06550: line 1, column 8:.PL/SQL: Statement ignored."
>
>I can certainly understand the error; the stored procedure is called
>with no parameters. However, before we acquired the product, "foobar"
>had sold a copy of the application to a customer running Oracle 8 (and
>later Oracle 9). The customer appears to be running the application
>successfully, and "foobar" claims that the source code we recieved is
>the same source code that was used to build the application as delivered
>to the customer. This puzzles me, because I would assume that the
>processing of stored procedures at runtime is pretty much the same from
>release to release of Oracle. I would *expect* the customer to be
>getting the same error that I'm getting.
>
>Since I don't have ready access to earlier versions of Oracle, my
>question for the group: would Oracle 8 or 9 have somehow allowed a call
>to the nsGetGroups stored procedure to proceed without the REF CURSOR
>paramater supplied by the caller? (I'd be surprised if the answer is
>anything other than "no".)
>
>(There is another possibility: "foobar" may *not* have sent us the
>proper code. We've already identified other source files which were
>updated by "foobar" but never checked into the source code repository
>that was sent to us. But that problem is a little outside the scope of
>this newsgroup!)
>
>Eric
Received on Tue Jul 24 2007 - 14:13:04 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US