If a nested table contains another nested table, I am getting an error from ODAC. It is very easy to reproduce.
Delphi Version 10.1
ODAC Version: 10.3.1
Oracle Server: 19.0
Oracle client: 19.1
Code: Select all
procedure TForm1.FormCreate(Sender: TObject);
var
sess: TOraSession;
qry: TSmartQuery;
nt: TOraNestedTable;
begin
sess := TOraSession.Create(nil);
qry := TSmartQuery.Create(nil);
nt := TOraNestedTable.Create(nil);
sess.username := 'my_user_name';
sess.password := 'secret';
sess.server := 'my_19c_database';
sess.loginprompt := false;
sess.connected := true;
qry.Session := sess;
qry.ObjectView := true;
qry.sql.add('SELECT COLLECT(tab) as ctab');
qry.sql.add('FROM (SELECT NEW sys.ora_mining_number_nt(1) tab');
qry.sql.add(' FROM dual)');
qry.open;
if qry.FieldByName('CTAB').DataType = ftDataSet then
begin
nt.DataSetField := TDataSetField(qry.FieldByName('CTAB'));
nt.open;
end;
end;
FTable.ItemType is dtTable but that is not handled.
Thanks
-John