Intermediate

24-13.

Which of the following actions are not possible with UTL_FILE?

  1. Read sequentially the contents of a server-side file.

  2. Append text to the end of an existing file.

  3. Read from a “random” location in a file.

  4. Delete a file.

  5. Create a new file and write text to it.

  6. Copy a file.

  7. Move a file to a different location.

  8. Change the access privileges on a file.

  9. Obtain the number of bytes in a file without reading the entire file.

24-14.

What is displayed in your SQL*Plus session when the following program is run (assume that UTL_FILE has the necessary privileges to read the file)?

DECLARE
   fid UTL_FILE.FILE_TYPE :=
      UTL_FILE.FOPEN ('/tmp', 'twolines.txt', 'R');
   line VARCHAR2(2000);
BEGIN
   LOOP
      UTL_FILE.GET_LINE (fid, line);
      DBMS_OUTPUT.PUT_LINE (line);
   END LOOP;
END;

Here are the contents of the data file that is read:

I am not a very large file, really I consist
of nothing more than two lines.

24-15.

Write a procedure to display the contents of the specified file to standard output (usually your screen). Make sure you don’t leave a file open if an error occurs.

24-16.

What is wrong with the following code?

CREATE TYPE string_list_t IS TABLE OF VARCHAR2(255); / 1 CREATE OR REPLACE PROGRAM nest2file (file IN VARCHAR2, 2 list IN string_list_t%TYPE) 3 /* Move contents of nested table to file. */ 4 IS 5 fid UTL_FILE.FILE_TYPE := UTL_FILE.FOPEN (file, 'R'); 6 line VARCHAR2(100); 7 linenum INTEGER; 8 BEGIN 9 FOR linenum IN list.LAST .. list.FIRST 10 LOOP 11 line := list(linenum); 12 UTL_FILE.WRITE_LINE (line); ...

Get Oracle PL/SQL Programming: A Developer's Workbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.