Bug 5330

PLS-00306: wrong number or types of arguments in call to Oracle Store Procedure 14 October, 2020

vinay oza
25 September, 2020
Product: PowerBuilder Category: PowerBuilder IDE
Version: 2017 R3 Build: 1880
Classification: Publishing: Public
Priority: P3
Status: Analyzing Reason:
armando herrera @Appeon 14 October, 2020
#6
Hi Miguel,

I'm just ckecking, are you still facing this matter, is there anything else we can do to keep helping?.

Regards!
Miguel Leeuwe 27 September, 2020
#5
I just downloaded the zip file and ... NO it's not a typo. 
The "=" should be "=>"  in the second parameter specification.
Miguel Leeuwe 27 September, 2020
#4
Hi Ken, 
what about the second parameter, you only mention the first one?
The way I see it, is that the ">" is missing in the second parameter in Vinay Oza's call (unless it's just a typo):

DECLARE proc_update PROCEDURE FOR  spu_edt_object3
@a_in => :o_message,
@a_id_object = :o_id_object OUTPUT;

regards
Ken Guo @Appeon 26 September, 2020
#3
Hi Vinay,

Please use this DECLARE script in PB:

DECLARE proc_update PROCEDURE FOR  spu_edt_object3(  
   :o_message
)
USING SQLCA;

Or

DECLARE proc_update PROCEDURE FOR  spu_edt_object3(
   o_in => :o_message
)
USING SQLCA;


Regards,
Ken
Chris Pollach @Appeon 25 September, 2020
#2
Hi Vinay;

  Are you using PB2019 R3 build 1915? 
That is the first build of 2017 that supports O18C & 19C.

Regards ... Chris
vinay oza 25 September, 2020
#1
Appeon PB.zip (42KB)

When I am call below stored procedure that has both IN and OUT parameters, in oracle db (19c) from PowerBuilder2017 I am getting below error message. There is no syntax error in this statement, can you please let me know how I can resolve this issue?

"ORA-06550: line 1, column 15:
PLS-00306: wrong number or types of arguments in call to 'SPU_EDT_OBJECT3'
ORA-06550: line 1, column 15:
PL/SQL: Statement ignorede"


*Reproduce Steps:
Oracle Store Procedure : 

create or replace PROCEDURE spu_edt_object3(
o_in VARCHAR,
o_id_object OUT VARCHAR
) as
begin
o_id_object := 'Hello World';
end;

Powerbuilder code :

string o_message, param, st,o_id_object
o_message= 'HIiiiiii'
DECLARE proc_update PROCEDURE FOR  spu_edt_object3
@a_in => :o_message,
@a_id_object = :o_id_object OUTPUT

USING SQLCA;

EXECUTE proc_update;

if SQLCA.SqlCode <> 0 then
	 MessageBox("SQL error " + String(SQLCA.SQLDBCode),   SQLCA.SQLErrText )
RETURN -1
end if

FETCH proc_update INTO :o_id_object;

if SQLCA.SqlCode <> 0 then
	 MessageBox("SQL error " + String(SQLCA.SQLDBCode),   SQLCA.SQLErrText )
RETURN -1
end if












Remarks:
OS:
Windows 10
Platform:
32-bit
Database Type:
Oracle
Database Version: