Presentation is loading. Please wait.

Presentation is loading. Please wait.

PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming Chapter 10 Oracle-Supplied Packages and SQL*Loader.

Similar presentations

Presentation on theme: "PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming Chapter 10 Oracle-Supplied Packages and SQL*Loader."— Presentation transcript:

1 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming Chapter 10 Oracle-Supplied Packages and SQL*Loader

2 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming2 Objectives After completing this lesson, you should be able to understand: – Using communications packages – Generating output via packages – Including large objects in the Oracle database – Exploring dynamic SQL and PL/SQL – Identifying other important built-in packages – Using the SQL*Loader utility

3 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming3 Brewbean’s Challenge Credit card verification Real-time messages E-mail generation Import external file data Include image files in the database Schedule program execution

4 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming4 Communications Packages Built-in Package Name DescriptionScript Filename DBMS_PIPEAllows different database sessions to communicate dbmspipe.sql DBMS_ALERTEnables notification of database events dbmsalrt.sql UTL_SMTPEnables e-mail features utlsmtp.sql

5 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming5 DBMS_PIPE Allows different sessions in the same instance to communicate Uses buffers in the SGA Typically used to interface with the operating system or an external system Sending a message is a two-step process of packing and sending

6 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming6 DBMS_PIPE Example

7 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming7 DBMS_ALERT Allows real-time messages or alerts to be sent to users upon a particular event Accomplished in a database trigger to be associated with an event An example use is online auctions Process includes: register an alert name, set when alert should signal, and identify users that should be recipients

8 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming8 DBMS_ALERT Example Register name DBMS_ALERT.REGISTER(‘new_bid’); Fire signal in database trigger DBMS_ALERT.SIGNAL(‘new_bid’, TO_CHAR(; Register recipient DBMS_ALERT.WAITONE(‘new_bid’, v_msg, v_status, 600);

9 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming9 UTL_MAIL Simplifies sending e-mail via a PL/SQL block Introduced in Oracle10g Scripts must be executed to set up the package SMTP server must be defined on the system

10 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming10 UTL_MAIL Example

11 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming11 UTL_SMTP Simplifies e-mail generation Simple Mail Transfer Protocol (SMTP) used to send e-mails Programmatically create all the parts of an e- mail Used to communicate with customers, suppliers, and internal employees as appropriate

12 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming12 UTL_SMTP Function NameDescription HELOPerforms initial handshaking to identify the sender to the mail server MAILInitiates a mail transaction which sends messages to mailbox destinations RCPTIdentifies each of the recipients of an e-mail DATASpecifies the lines in the body of an e-mail RSETAborts the current mail transaction NOOPRequests a reply from the mail server to verify connection is still alive QUITTerminates the SMTP session and disconnects from the mail server OPEN_CONNECTIONOpens a connection to the mail server OPEN_DATASends the DATA command WRITE_DATAAdds data to message body CLOSE_DATAEnds the message

13 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming13 UTL_HTTP Used to analyze HTML source of Web pages Makes Hypertext Transfer Protocol (HTTP) calls from within PL/SQL REQUEST_PIECES function will retrieve the HTML source of a specified URL in 2,000 byte segments

14 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming14 UTL_TCP Allows low-level calls using TCP/IP Internet communications rely on TCP/IP The UTL_SMTP and UTL_HTTP packages rely on this package

15 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming15 Generating Output Built-in Package NameDescriptionScript Filename DBMS_OUTPUTDisplays data to the screendbmsotpt.sql UTL_FILERead and write data to external files utlfile.sql

16 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming16 DBMS_OUTPUT Displays data from within PL/SQL code Most popularly used for debugging In SQL*Plus, SET SERVEROUTPUT ON must be set The PUT procedure continues to place data on the same output line The PUT_LINE procedure will start a new line

17 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming17 DBMS_OUTPUT Example

18 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming18 UTL_FILE Enables reading and writing text data to operating system files (import and export data) Program Unit NameDescription FOPENOpens a file to write to or be read PUT_LINEWrites a line to a file GET_LINEReads a line from a file FCLOSECloses a file

19 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming19 UTL_FILE Example Write to a file

20 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming20 UTL_FILE Example Read a file

21 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming21 Large Objects (LOBs) Handle media such as images, video segments, and large documents LOB TypeDescription BLOBBinary large object such as a photo file CLOBCharacter large object such as text documentation BFILEBinary large object such as a streaming video or movie file NCLOBFixed-width character data for storing character data in other languages

22 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming22 LOBs Enable the storage of large objects as columns in a database table Can hold up to 4GB of data Multiple LOB columns allowed All except BFILE are stored internally in the database A LOB column contains pointer to actual LOB data

23 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming23 DBMS_LOB Example

24 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming24 Dynamic SQL and PL/SQL Allow construction and parsing of statements at run time Enable the execution of DDL statements from within PL/SQL Two mechanisms –DBMS_SQL package –Dynamic SQL Covered in Chapter 10

25 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming25 DBMS_JOB Enables jobs to be scheduled for execution Program Unit NameDescription BROKENFlags the job as broken so it will not be executed CHANGEAlters job parameters set by a user INTERVALModifies execution interval for a job ISUBMITSubmits a job with a specified job number NEXT_DATEModifies the next date of execution REMOVEDeletes job from the queue RUNExecutes the specified job immediately SUBMITAdds a job to the queue USER_EXPORTCreates text of call to recreate the job WHATModifies the PL/SQL code to be executed


27 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming27 DBMS_JOB Example BEGIN DBMS_JOB.SUBMIT (job => :jobno, what => 'BEGIN prod_sum_sp; END;', next_date => TRUNC(SYSDATE+1), interval => 'TRUNC(SYSDATE+1)' ); COMMIT; END; /

28 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming28 DBMS_JOB Example (continued)

29 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming29 DBMS_DDL Allows access to two specific DDL statements: –ALTER_COMPILE –ANALYZE_OBJECT

30 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming30 Exploring More Search the OTN Web site for more Oracle- supplied packages Package NameDescription DBMS_JAVAControls the behavior of the Java Virtual Machine used to run Java stored procedures DBMS_METADATARetrieves information about database objects DBMS_RANDOMRandom number generator DBMS_SESSIONAllows access to session options directly from PL/SQL DBMS_UTILITYContains a miscellaneous group of programs ranging from capabilities to assist in procedure management to reporting error information DBMS_XMLGENConverts data from an SQL query into XML UTL_HTTPAccesses Web pages UTL_INADDRRetrieves Internet site host name or IP address

31 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming31 SQL*Loader Utility Client tool provided by Oracle Simplifies loading data from a flat file into the database Can execute a large number of rows efficiently Can read data in many different formats

32 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming32 SQL*Loader Utility (continued) Involves three items –A data file –A control file that defines how the data should be read and loaded –A command to execute the utility

33 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming33 SQL*Loader Utility Example "Reeding Trades",Brazil,25,2 "Beans Here, There, Everywhere",Ethiopia,,4 "Coffee Suppliers Inc.",Spain,20,1 "Traders First Beans",Costa Rica, 50,2 Example data file for coffee suppliers

34 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming34 SQL*Loader Utility Example (continued) LOAD DATA INFILE 'C:\vendors.csv' REPLACE INTO TABLE bb_vendor_list FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ' "' TRAILING NULLCOLS (vname, v_cntry, min_lbs INTEGER EXTERNAL, ship_days INTEGER EXTERNAL) Example control file

35 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming35 SQL*Loader Utility Example (continued) sqlldr scott/tiger@orcl control=C:\vendors.ctl Example command to execute

36 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming36 Summary Oracle-supplied packages are pre-built packages to address common processing needs DBMS_PIPE allows communication between sessions DBMS_ALERT enables event notification UTL_SMTP simplifies e-mail generation UTL_HTTP enables HTML source retrieval UTL_TCP enables TCP/IP communications

37 PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming37 Summary (continued) DBMS_OUTPUT allows data display UTL_FILE enables reading and writing to text files DBMS_LOB manages LOBs DBMS_JOB provides job scheduling capabilities DBMS_DDL enables the COMPILE and ANALYZE commands to be processed within PL/SQL SQL*Loader utility enables loading data from external files

Download ppt "PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming Chapter 10 Oracle-Supplied Packages and SQL*Loader."

Similar presentations

Ads by Google