Expert
24-29. | What information is displayed on the screen when you run this code (assume that you have UTL_FILE privileges on the c:\temp directory): DECLARE
fid UTL_FILE.FILE_TYPE :=
UTL_FILE.FOPEN ('c:\temp', 'new.txt', 'W');
line VARCHAR2(2000);
BEGIN
fid.id := NULL;
IF UTL_FILE.IS_OPEN (fid)
THEN
DBMS_OUTPUT.PUT_LINE ('Seems open to me...');
ELSE
DBMS_OUTPUT.PUT_LINE ('Who closed my file?');
END IF;
END;
/ |
24-30. | Create a procedure that allows you to write lines of arbitrary length (even exceeding the maximum allowed in UTL_FILE) to a file. |
24-31. | Write an INSTR-like function for UTL_FILE. It should implement the following header: CREATE OR REPLACE FUNCTION infile
(loc_in IN VARCHAR2,
file_in IN VARCHAR2,
text_in IN VARCHAR2,
occurrence_in IN INTEGER := 1,
start_line_in IN INTEGER := 1,
end_line_in IN INTEGER := 0,
ignore_case_in IN BOOLEAN := TRUE)
RETURN INTEGER;In other words, find the nth occurrence of the string text_in between lines start_line_in and end_line_in, either matching or ignoring case. Assume that the following rules are obeyed to simplify your solution:
|
24-32. | Let’s take a look at error handling with the UTL_FILE package. I created this procedure (as well as fileplay2.sp) to play around with files:
|