Consultor Eletrônico



Kbase P120611: Nested FOR EACH statements gives error 1252:
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   16/10/2008
Status: Unverified

FACT(s) (Environment):

OpenEdge 10.0B
Oracle

SYMPTOM(s):

Nested FOR EACH statements gives error 1252:


ORACLE error -1114 see "ORACLE Error Messages and Codes Manual". (1252)
** IO error writing block to file %s (block # %s)

A statement like the one below gives the error:
FOR EACH <table1> WHERE <where condition 1>,
EACH <table2> WHERE <where condition 2>:
.....
END.

Executing the apparently equivalent 4GL statement, the problem doesn't happen:
FOR EACH <table1> WHERE <where condition 1>:
FOR EACH <table2> WHERE <where condition 2>:
....
END.
END.

Oracle error 1114 says:

"The device on which the file resides is probably offline. If the file is a temporary file, then it is also possible that the device has run out of space. This could happen because disk space of temporary files is not necessarily allocated at file creation time."

CAUSE:

In this particular case the problem was caused by insufficient disk space.
Despite the fact that the above FOR EACH 4GL statements seem to be equivalent, the OpenEdge DataServer for Oracle will generate in fact different SQL code which will require different resources.


FIX:

Ensure enough disk space is available.