0% found this document useful (0 votes)
27 views3 pages

PU Chapter 06 Oracle Supplied Packages Scripts

The document provides examples of using Oracle supplied packages to perform tasks like writing to files, reading from files, sending emails, and attaching files to emails. The examples demonstrate how to use packages like UTL_FILE, UTL_MAIL, and UTL_SMTP to perform these tasks through PL/SQL stored procedures.

Uploaded by

pro_shad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views3 pages

PU Chapter 06 Oracle Supplied Packages Scripts

The document provides examples of using Oracle supplied packages to perform tasks like writing to files, reading from files, sending emails, and attaching files to emails. The examples demonstrate how to use packages like UTL_FILE, UTL_MAIL, and UTL_SMTP to perform these tasks through PL/SQL stored procedures.

Uploaded by

pro_shad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 3

PU Chapter 06 Oracle Supplied Packages Scripts

Example (PU_06_01)

CONN system/sys
CREATE OR REPLACE DIRECTORY my_dir AS 'c:\my_files';
GRANT READ, WRITE ON DIRECTORY my_dir TO HR;

CREATE OR REPLACE PROCEDURE PU_05_01


IS
v_file UTL_FILE.FILE_TYPE;
BEGIN
v_file :=UTL_FILE.FOPEN ('MY_DIR','file_1.txt','W');
UTL_FILE.PUT (v_file,'Oracle 10g');
UTL_FILE.PUT (v_file,'PL/SQL');
UTL_FILE.PUT (v_file,'Course');
UTL_FILE.FCLOSE (v_file);
END PU_06_01;
EXECUTE pu_06_01;
-------------------------------------------------------------------------------------
Example (PU_06_02)

CREATE OR REPLACE PROCEDURE pu_06_02


IS
v_file UTL_FILE.FILE_TYPE;
BEGIN
v_file :=UTL_FILE.FOPEN ('MY_DIR','file_1.txt','A');
IF NOT UTL_FILE.IS_OPEN (v_file) THEN
DBMS_OUTPUT.PUT_LINE ('the file is not opend');
ELSE
UTL_FILE.NEW_LINE (v_file);
UTL_FILE.PUT (v_file,'ORACLE 10g');
UTL_FILE.PUT_LINE (v_file,'PL/SQL');
UTL_FILE.NEW_LINE (v_file,5);
UTL_FILE.PUTF (v_file,'Start at %s by %s',sysdate,user);
UTL_FILE.FCLOSE (v_file);
END IF;
END PU_06_02;
EXECUTE pu_06_02;
-------------------------------------------------------------------------------------
Example (PU_06_03)

CREATE OR REPLACE PROCEDURE pu_06_03


IS
v_file UTL_FILE.FILE_TYPE;
v_string_out VARCHAR2(2000);
BEGIN
v_file :=UTL_FILE.FOPEN ('MY_DIR','file_2.txt','W');
UTL_FILE.PUT_LINE (v_file,'statment 1');
UTL_FILE.PUT_LINE (v_file,'statment 2');
UTL_FILE.PUT_LINE (v_file,'statment 3');
UTL_FILE.PUT_LINE (v_file,'statment 4');
UTL_FILE.FCLOSE (v_file);
v_file :=UTL_FILE.FOPEN ('MY_DIR','file_2.txt','R');
UTL_FILE.GET_LINE (v_file,v_string_out);
DBMS_OUTPUT.PUT_LINE (v_string_out);
UTL_FILE.GET_LINE (v_file,v_string_out);
DBMS_OUTPUT.PUT_LINE (v_string_out);
UTL_FILE.GET_LINE (v_file,v_string_out);
DBMS_OUTPUT.PUT_LINE (v_string_out);
UTL_FILE.FCLOSE (v_file);
END PU_06_03;
EXECUTE pu_06_03;
-------------------------------------------------------------------------------------
Example (PU_06_04)

CREATE OR REPLACE PROCEDURE pu_06_04


IS
v_file UTL_FILE.FILE_TYPE;
v_string_out VARCHAR2(2000);
BEGIN
v_file :=UTL_FILE.FOPEN ('MY_DIR','file_3.txt','W');
UTL_FILE.PUT_LINE (v_file,'statment 1');
UTL_FILE.PUT_LINE (v_file,'statment 2');
UTL_FILE.PUT_LINE (v_file,'statment 3');
UTL_FILE.PUT_LINE (v_file,'statment 4');
UTL_FILE.FCLOSE (v_file);
EXCEPTION
WHEN UTL_FILE.INVALID_PATH THEN
RAISE_APPLICATION_ERROR (-20005,'unknown path');
WHEN UTL_FILE.INVALID_FILEHANDLE THEN
RAISE_APPLICATION_ERROR (-20003,'unknown File name');
WHEN UTL_FILE.INVALID_OPERATION THEN
RAISE_APPLICATION_ERROR (-20006,'unknown operation');
END PU_06_04;

EXECUTE pu_06_04;
-------------------------------------------------------------------------------------
Example (PU_06_05)

CREATE OR REPLACE PROCEDURE sal_status


(P_filename varchar2)
IS
v_filehandle UTL_FILE.FILE_TYPE;
CURSOR emp_info IS
SELECT last_name, salary, department_id
FROM employees
ORDER BY department_id;
v_newdeptno employees.department_id%TYPE;
v_olddeptno employees.department_id%TYPE := 0;
BEGIN
v_filehandle := UTL_FILE.FOPEN ('MY_DIR', p_filename,'w');
UTL_FILE.PUTF (v_filehandle,'SALARY REPORT: GENERATED ON %s\n' ,SYSDATE);
UTL_FILE.NEW_LINE (v_filehandle);

FOR v_emp_rec IN emp_info LOOP


v_newdeptno := v_emp_rec.department_id;
IF v_newdeptno <> v_olddeptno THEN
UTL_FILE.PUTF(v_filehandle, 'DEPARTMENT: %s\n',v_emp_rec.department_id);
END IF;
UTL_FILE.PUTF ( v_filehandle,' EMPLOYEE: %s earns: %s\n',
v_emp_rec.last_name, v_emp_rec.salary);

v_olddeptno := v_newdeptno;
END LOOP;

UTL_FILE.PUT_LINE (v_filehandle, '*** END OF REPORT ***');


UTL_FILE.FCLOSE (v_filehandle);

EXCEPTION
WHEN UTL_FILE.INVALID_FILEHANDLE THEN
RAISE_APPLICATION_ERROR (-20001, 'Invalid File.');
WHEN UTL_FILE.WRITE_ERROR THEN
RAISE_APPLICATION_ERROR (-20002, 'Unable to write to file');
END sal_status;

EXECUTE sal_status ('emp_data.txt')


-------------------------------------------------------------------------------------
Example (PU_06_06)

--RUN UTLMAIL.SQL

CREATE OR REPLACE PROCEDURE pu_06_06


IS
BEGIN
UTL_MAIL.SEND('[email protected]','[email protected]',
MESSAGE => 'How are you Today’,
subject => 'For you');
END pu_06_06;
-------------------------------------------------------------------------------------
Example (pu_06_07)

CREATE OR REPLACE PROCEDURE send_mail_logo


IS
BEGIN
UTL_MAIL.SEND_ATTACH_RAW (
sender => '[email protected]',
recipients => '[email protected]',
MESSAGE => '<HTML><BODY> See attachment</BODY></HTML>',
subject => 'oracle Logo',
mime_type => 'text/html',
attachment => 'oracle.gif',
att_inline => true,
att_mime_type=> 'image/gif',
att_filename => 'oralogo.gif');
END send_mail_logo;

-------------------------------------------------------------------------------------
Example (PU_06_08)
CREATE OR REPLACE PROCEDURE send_mail_file
IS
BEGIN
UTL_MAIL.SEND_ATTACH_VARCHAR2 (
sender => '[email protected]',
recipients => '[email protected]',
MESSAGE => '<HTML><BODY> See attachment</BODY></HTML>',
subject => 'oracle Notes',
mime_type => 'text/html',
attachment => 'note_txt',
att_inline => false,
att_mime_type=> 'text/plain',
att_filename => 'notes.txt');
END send_mail_file;

-------------------------------------------------------------------------------------

You might also like