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 DICTORY my_dir AS '/temp/my_files* ;
SQL_GRANT WRITE ON DIRECTORY my_dir TO SCOTT;
View Exhibit 2 and examine the procedure code. You issue the following command:
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.salart);
END LOOP;
UTL_FILE,FCLOSE(f_file);
EXCEPTION
WHEN UTL_FILE.INVALID_FILEHANDLE THEN
RAISE_APPLICATION_ERROR(-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_5tatus ('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 DICTORY my_dir AS '/temp/my_files* ;
SQL_GRANT WRITE ON DIRECTORY my_dir TO SCOTT;
View Exhibit 2 and examine the procedure code. You issue the following command:
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.salart);
END LOOP;
UTL_FILE,FCLOSE(f_file);
EXCEPTION
WHEN UTL_FILE.INVALID_FILEHANDLE THEN
RAISE_APPLICATION_ERROR(-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_5tatus ('MY_DIR', ‘EMPREPORT.TXT')
What is the outcome ?