Problem while getting parameters for package function

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
roznicki
Posts: 14
Joined: Tue 09 Feb 2010 13:15

Problem while getting parameters for package function

Post by roznicki » Thu 07 Oct 2010 14:05

When UNIDAC is getting parameters for stored procedure that is package function it runs OCIDescribeAny from Oracle OCI API. Unfortunately it leads to ORA-04043: object XXX.XXX does not exist.
Position of this operation : unit:OraClassesUni.pas line 9426 (Unidac 3.00.0.5).

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Post by AlexP » Thu 07 Oct 2010 14:58

Hello,

Please send me the script to create the package, and I'll try to reproduce the problem.

roznicki
Posts: 14
Joined: Tue 09 Feb 2010 13:15

Testin package

Post by roznicki » Fri 08 Oct 2010 07:44

Below is package i use for tests:

Code: Select all

CREATE OR REPLACE PACKAGE TEST_PACKAGE AS
  NAME VARCHAR2(100);
  FUNCTION GETKSHWINDOW RETURN VARCHAR2;
  PROCEDURE SETKSHWINDOW(pNAME VARCHAR2);
END TEST_PACKAGE;
/
CREATE OR REPLACE PACKAGE BODY TEST_PACKAGE AS
  FUNCTION GETKSHWINDOW RETURN VARCHAR2 IS
  BEGIN
    RETURN NAME;
  END;
  --
  PROCEDURE SETKSHWINDOW(pNAME VARCHAR2) IS
  BEGIN
    NAME := pNAME;
  END;
END TEST_PACKAGE;
I run stored procedure and function dynamically (db is TUniConnection - OCI mode (Direct=false)):
db.ExecProc('TEST_PACKAGE.SETKSHWINDOW',['TEST']);
db.ExecProc('TEST_PACKAGE.GETKSHWINDOW',[]);
Invoking dynamically is important because Unidac is collectiong params metadata from Oracle using OCIDescribeAny API function.
Static invoking is working normally.
Hint: there is no exception - procedures are working normally - just Oracle logs :
[1]ORA-04043: object TEST_PACKAGE.SETKSHWINDOW does not exist
[1]ORA-04043: object TEST_PACKAGE.GETKSHWINDOW does not exist
Problem is that I have over 50 thousand lines of this error in logs for 3 days.

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Post by AlexP » Fri 08 Oct 2010 11:35

Hello,

I couldn't reproduce the problem.
Please tell me your Oracle Client and Server version.
Also please try to reproduce the problem with the latest UniDAC version (3.50.0.12).

Post Reply