ODAC 10.1.3
Database script:
Code: Select all
create or replace type vetc$businessMember_t as object(
entity_guid varchar2(48 char),
enterprise_guid varchar2(48 char),
globalId varchar2(48 char)
)
/
create or replace type vetc$consignment_t as object (
id varchar2(48 char),
partof varchar2(48 char),
productType number,
batchId vetc$identifier_lst
)
/
create or replace type vetc$consignment_lst as varray(255) of vetc$consignment_t;
/
CREATE OR REPLACE TYPE VETC$IDENTIFIER_LST AS VARRAY (255) OF VARCHAR2(255 char);
/
create or replace type vetc$delivery_t as object (
deliveryDate date,
consignor vetc$businessMember_t,
consignee vetc$businessMember_t,
consignment vetc$consignment_lst
)
/
Code: Select all
Qry := TOraQuery.Create(nil);
Qry.Session := OraSess;
Qry.SQL.Text := 'select * from table(pkg.getObject(:p1))';
Qry.ParamByName('p1').AsInteger := 100;
Qry.Open;
Delivery := TOraObject(Qry.GetObject('delivery')); // Ok
Consignor := Delivery.AttrAsObject['consignor']; // Ok
ShowMessage(Consignor.AttrAsString['entity_guid']); // Ok
Consignment := Deliver.AttrAsArray['consignment']; // Ok
if Consignment.ItemExists[0] then // [color=#FF4000]Access Violation[/color]
////