EXEC would be sufficient for you, cause at the ADMP call interface you cannot react on the enhanced result iterator. To fetch the result you have to insert into a temporary table you create before the execution (Insert into #tmptable (select ...)).
CONCATENATE is not available in an AMDP, for concatenation you have to use '||'.
Why exactly you need to do that in an AMDP and not directly with OpenSQL?