Since upgrading to version 9.16.20, I have noticed a stack overflow when using array DML and INTERVAL datatypes.
To reproduce:
1) start a new vcl forms project in Delphi.
2) drop a TOraSession on the form and rename it to Sess.
3) drop a TSmartQuery on the form and rename it to qry
4) drop a TOraSQL on the form and rename it to sql
5) Paste the code below in your form's OnCreate method, and change the login info as needed.
6) run it.
Code: Select all
sess.Username := 'JDORLON';
sess.Password := 'jdorlon';
sess.Server := 'ORCL12';
sess.LoginPrompt := False;
sess.Connect;
qry.sql.add('drop table int_test');
try
qry.execute;
except
end;
qry.sql.clear;
qry.sql.add('create table int_test (a_int interval day(2) to second(6))');
qry.execute;
sql.ArrayLength := 2;
sql.sql.add('insert into int_test (a_int) values (:Param1)');
sql.ParamByName('Param1').DataType := TFieldType(ftIntervalDS);
sql.ParamByName('Param1').ItemValue[1] := null;
sql.ParamByName('Param1').ItemValue[2] := null;
sql.execute;
ODAC: 9.16.20
Delphi: XE2 (compiling in 32 bit)
Oracle client: 12.1.0.2
Oracle server: 12.1.0.2
Thank you.