View Exhibit 1 and examine the structure of the employees table.
Name Null? Type
----------------- ------------ ------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
User SCOTT needs to generate a text report that contains the names of all employees and their
salaries.
Examine the following commands issued by the DBA:
SQL > CREATE DIRECTORY my_dir AS '/temp/myfiles';
SQL > GRANT WRITE ON DIRECTORY my_dir TO scott;
View Exhibit 2 and examine the procedure code.
CREATE OR REPLACE PROCEDURE sal_status(p_dir IN VARCHAR2,
p_filename IN VARCHAR2) IS
f_file UTL_FILE.FILE_TYPE;
CURSOR cur_emp IS
SELECT last_name,salary
FROM employees ORDER BY salary;
BEGIN
f_file := UTL_FILE.FOPEN (p_dir,p_filename,'W');
UTL_FILE.PUT_LINE(f_file,'REPORT: GENERATED ON' || SYSDATE);
FOR emp_rec IN cur_emp LOOP
UTL_FILE.PUT_LINE(f_file,'EMPLOYEE:' || emp_rec.last_name ||
'earns: ' || emp_rec.salary);
END LOOP;
UTL_FILE.FCLOSE (f_file);
EXCEPTION
WHEN UTL_FILE.INVALID_FILEHANDLE THEN
RAISE_APPLICATION_ERROR9-20100,'Invalid File.');
WHEN UTL_FILE.WRITE_ERROR THEN
RAISE_APPLICATION_ERROR(-20002,'Unable to write to file');
END sal_status;
/
You issue the following command:
SQL > EXEC sal_status('MY_DIR','EMPREPORT.TXT')
What is the outcome?
View Exhibit 1 and examine the structure of the employees table.
Name Null? Type
----------------- ------------ ------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
User SCOTT needs to generate a text report that contains the names of all employees and their
salaries.
Examine the following commands issued by the DBA:
SQL > CREATE DIRECTORY my_dir AS '/temp/myfiles';
SQL > GRANT WRITE ON DIRECTORY my_dir TO scott;
View Exhibit 2 and examine the procedure code.
CREATE OR REPLACE PROCEDURE sal_status(p_dir IN VARCHAR2,
p_filename IN VARCHAR2) IS
f_file UTL_FILE.FILE_TYPE;
CURSOR cur_emp IS
SELECT last_name,salary
FROM employees ORDER BY salary;
BEGIN
f_file := UTL_FILE.FOPEN (p_dir,p_filename,'W');
UTL_FILE.PUT_LINE(f_file,'REPORT: GENERATED ON' || SYSDATE);
FOR emp_rec IN cur_emp LOOP
UTL_FILE.PUT_LINE(f_file,'EMPLOYEE:' || emp_rec.last_name ||
'earns: ' || emp_rec.salary);
END LOOP;
UTL_FILE.FCLOSE (f_file);
EXCEPTION
WHEN UTL_FILE.INVALID_FILEHANDLE THEN
RAISE_APPLICATION_ERROR9-20100,'Invalid File.');
WHEN UTL_FILE.WRITE_ERROR THEN
RAISE_APPLICATION_ERROR(-20002,'Unable to write to file');
END sal_status;
/
You issue the following command:
SQL > EXEC sal_status('MY_DIR','EMPREPORT.TXT')
What is the outcome?