Desconozco como esta implementado en detalle el FOR ALL ENTRIES, pero me imagino que internamente hara algo asi.
Tu tienes:
SELECT..
FOR ALL ENTRIES IN TABLA
WHERE CAMPO1 = TABLA1-CAMPO1
El compilador coge tu TABLA1 y genera un rango con todos los valores distintos de CAMPO1
Despues coge tu SELECT.. FOR ALL ENTRIES y lo convierte en
SELECT
WHERE CAMPO1 IN RANGO_CAMPO1
Es por eso que no puedes hacer referencia a campos de tu tabla interna, porque el select "real" que se hace no "ve" tu tabla interna.
|