This content has been marked as final. Show 1 reply
Sadly PL/SQL blocks do not understand structs (or arrays). DML statements do understand them.
This is not very clearly stated in the manual, but it does say:
Restrictions on Arrays of Structs
The following restrictions apply to the use of arrays of structs in Pro*C/C++:
Arrays of structs (just as with ordinary structs) are not permitted inside an embedded PL/SQL block.
Do not use C pointer or array syntax in PL/SQL blocks. The PL/SQL compiler does not understand C host-variable expressions and is, therefore, unable to parse them.
Although the example uses an array of structs, simple structs also fail. I have always had to copy the fields to and from simple variables when calling stored procedures.