Hi!
There is a problem with ODAC 5 (v5.10.0.5 30.06.04) & Delphi 7.
Test sample:
create table a_clients (s_client_no char(7) not null, s_client_name varchar(45));
PACKAGE A_PACKAGE
IS
FUNCTION get_client_name
( client_no IN a_clients.s_client_no%TYPE DEFAULT NULL,
client_name OUT varchar)
RETURN integer;
END;
PACKAGE BODY A_PACKAGE
IS
FUNCTION get_client_name
( client_no IN a_clients.s_client_no%TYPE DEFAULT NULL,
client_name OUT varchar)
RETURN integer
IS
BEGIN
client_name := 'client_name';
return 0;
END;
END;
If I try to do the following in Delphi source -
...
OraStoredProc1.StoredProcName := 'a_package.get_client_name';
OraStoredProc1.Prepare;
OraStoredProc1.ParamByName('client_no').AsString := '0000001';
OraStoredProc1.Execute;
...
error ORA-06502 follows
But it works fine if do one of the following -
specify another data type for fixed char parameter:
...
OraStoredProc1.StoredProcName := 'a_package.get_client_name';
OraStoredProc1.Prepare;
OraStoredProc1.ParamByName('client_no').DataType := ftString;
OraStoredProc1.ParamByName('client_no').AsString := '0000001';
OraStoredProc1.Execute;
...
or specify not max length value for fixed char parameter:
...
OraStoredProc1.StoredProcName := 'a_package.get_client_name';
OraStoredProc1.Prepare;
OraStoredProc1.ParamByName('client_no').AsString := '000001';
OraStoredProc1.Execute;
...
Thanks in advance.