quote from Sunil:
----------------------------------------------------------------------
Hi,
I am using UTL_FILE to read a flat file, for which I am using LOOP, END LOOP,
However, on reaching last record, after that when it tries to fetch record, not finding anything it generates no-dat-found error. could we put some condition in UTL_FILE like when EOF then exit. ?
----------------------------------------------------------------------
Sure, just nest a BEGIN/EXCEPTION/END within your LOOP, and EXIT it when you hit the NO_DATA_FOUND:DECLARE
l_input UTL_FILE.FILE_TYPE;
l_buffer VARCHAR2(1000);
BEGIN
l_input := UTL_FILE.FOPEN('/tmp','my_filename.txt','r');
LOOP
BEGIN
UTL_FILE.GET_LINE(l_input,l_buffer);
EXCEPTION
WHEN NO_DATA_FOUND THEN EXIT;
END;
<i>do something with l_buffer here...</i>
...
END LOOP;
UTL_FILE.FCLOSE(l_input);
END;
Hope this helps,
A.