Download presentation
Presentation is loading. Please wait.
Published byLanden Prigmore Modified over 9 years ago
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(:new.bid)); 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
26
PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming26 DBMS_JOB INIT.ORA settings JOB_QUEUE_PROCESSES=1 JOB_QUEUE_INTERVAL=60 SUBMIT procedure PROCEDURE submit ( job OUT BINARY_INTEGER, what IN VARCHAR2, next_date IN DATE DEFAULT sysdate, interval IN VARCHAR2 DEFAULT 'null', no_parse IN BOOLEAN DEFAULT FALSE, instance IN BINARY_INTEGER DEFAULT 0, force IN BOOLEAN DEFAULT FALSE );
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.