Skip to Main Content

ORDS, SODA & JSON in the Database

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

ORDS 23.4 with PL/SQL. PLS-00306: wrong number or types of arguments in call to

ElenaLoJan 26 2024 — edited Jan 26 2024

I use ORDS 23.4 with Tomcat 9.0.85
I have a simple package PL/SQL with a form which use a (TYPE t_param IS TABLE OF VARCHAR2(4000))

When I compile and run for first time it works correctly, but when I change de name of variable a2_test (all occurrencies), it throw PLS-00306: wrong number or types of arguments in call to 'SEND'. If I change the name of the procedure it works and run correctly again.

Perhaps version 23.4 uses some cache, the same code after a 1 hour pass, works fine, too.

With ORDS 21.4.2 and Tomcat 9.0.60 it works allways correctly.

Here is the code for test the problem:

SET DEFINE OFF;
CREATE OR REPLACE PACKAGE TEST_PACKAGE AS
   TYPE t_param IS TABLE OF VARCHAR2(4000)
        INDEX BY BINARY_INTEGER;
   PROCEDURE TEST;
   PROCEDURE SEND(a2_test t_param);
   FUNCTION authorize RETURN BOOLEAN;
END TEST_PACKAGE;
/
CREATE OR REPLACE PACKAGE BODY TEST_PACKAGE AS
--------------------------------------------------------------------------------------------------------------
PROCEDURE TEST IS
    i INTEGER:=0;
BEGIN
    htp.print('<html><body>');
    htp.print('<H1>Test</H1>');
   htp.formOpen(owa_util.get_owa_service_path||'TEST_PACKAGE.send', 'POST', cattributes=>'name="Form1"');
   FOR i IN 1..5
   LOOP
      htp.formHidden('a2_test',1);
   END LOOP;
   htp.br; htp.br;
   htp.print('<input type="submit" value="Send" CLASS="boto">');
   htp.formClose;
   htp.print('</body></html>');
END test;
-------------------------------------------------------------------------------------------------------------
PROCEDURE SEND (a2_test t_param) IS
BEGIN
   htp.bold('Send ok');
END send;
-------------------------------------------------------------------------------------------------------------
FUNCTION authorize RETURN BOOLEAN IS
BEGIN
    RETURN (TRUE);
END authorize;
--------------------------------------------------------------------------------------------------------------
END TEST_PACKAGE;
Comments
Post Details
Added on Jan 26 2024
5 comments
392 views