Hello all, I'm trying to make some use of Dynamic SQL with only partial success. Here is where I'm stuck (I'll give a simple example without going too deep into details): Suppose you have a table with columns "ATTRIBUTE_01", "ATTRIBUTE_02",..."ATTRIBUTE_99", and you want to scan each and every field to check if it is empty or it has a value, and copy whatever you find into an array (let's call it "L_My_Values"). The most elegant way would be to write a loop like: : : FOR I in 1..99 LOOP L_String := 'BEGIN :LL_Value := ATTRIBUTE_' || lpad(I,2,'0') || ' ; END ;' ; EXECUTE IMMEDIATE L_String USING OUT L_My_Values(I) ; END LOOP ; : : When trying this, it turns out that the ATTRIBUTE_xx are not visible within the scope of the block provided to the EXECUTE IMMEDIATE. Any suggestion? Thanks in advance, Fernando.