pl/sqlpl/sql oracle11g: pl/sql programming chapter 10 oracle-supplied packages, dynamic sql, and...
TRANSCRIPT
![Page 1: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/1.jpg)
PL/SQL
Oracle11g: PL/SQL Programming
Chapter 10Oracle-Supplied Packages, Dynamic SQL, and HidingSource Code
![Page 2: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/2.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 2
Objectives
• After completing this lesson, you should be able to understand:– Generating output via packages– Including large objects in the Oracle
database– Using communication packages– Using important built-in packages– Exploring dynamic SQL and PL/SQL– Hiding PL/SQL source code
![Page 3: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/3.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 3
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
![Page 4: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/4.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 4
Built-in Packages
![Page 5: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/5.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 5
Generating Output
Built-in Package Name Description Script Filename
DBMS_OUTPUT Displays data to the screen dbmsotpt.sql
UTL_FILE Read and write data to external files
utlfile.sql
![Page 6: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/6.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 6
DBMS_OUTPUT
• Displays data from within PL/SQL code• Used heavily for debugging• Enable DBMS_OUTPUT in SQL Developer• The PUT procedure continues to place data
on the same output line• The PUT_LINE procedure will start a new line
![Page 7: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/7.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 7
DBMS_OUTPUT
![Page 8: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/8.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 8
DBMS_OUTPUT Example
![Page 9: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/9.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 9
UTL_FILE
• Enables reading and writing text data to operating system files (import and export data)
![Page 10: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/10.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 10
UTL_FILE Example - Write
![Page 11: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/11.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 11
UTL_FILE Example - Read
![Page 12: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/12.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 12
UTL_FILE
• Other file management procedures
![Page 13: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/13.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 13
Large Objects (LOBs)
• Handle media such as images, video segments, and large documents
![Page 14: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/14.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 14
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
![Page 15: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/15.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 15
DBMS_LOB Example
![Page 16: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/16.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 16
DBMS_LOB Example
![Page 17: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/17.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 17
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
![Page 18: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/18.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 18
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);
![Page 19: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/19.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 19
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• Starting with Oracle11g, system administrator
must create an access control list (ACL)
![Page 20: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/20.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 20
UTL_MAIL Example
![Page 21: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/21.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 21
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
![Page 22: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/22.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 22
DBMS_DDL
• Allows access to two specific DDL statements:– ALTER_COMPILE
– ANALYZE_OBJECT
![Page 23: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/23.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 23
Exploring More
![Page 24: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/24.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 24
Dynamic SQL
• Two mechanisms available– DBMS_SQL package
– Native dynamic SQL
![Page 25: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/25.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 25
Dynamic SQL
![Page 26: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/26.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 26
DBMS_SQL - DML
![Page 27: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/27.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 27
DBMS_SQL - DML
![Page 28: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/28.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 28
DBMS_SQL - DDL
![Page 29: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/29.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 29
DBMS_SQL - DDL
![Page 30: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/30.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 30
DBMS_SQL - Queries
![Page 31: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/31.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 31
DBMS_SQL - Queries
![Page 32: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/32.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 32
DBMS_SQL - Queries
![Page 33: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/33.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 33
Native Dynamic SQL
• Simpler coding• More efficient processing• Limited capabilities compared to DBMS_SQL
package• Two methods
– EXECUTE IMMEDIATE
– OPEN FOR
![Page 34: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/34.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 34
Native Dynamic SQL - DML
![Page 35: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/35.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 35
Native Dynamic SQL - Query
![Page 36: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/36.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 36
Native Dynamic SQL - Query
![Page 37: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/37.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 37
Native Dynamic SQL – Open For
![Page 38: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/38.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 38
Native Dynamic SQL – Open For
![Page 39: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/39.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 39
DBMS_SQL VS. Native Dynamic SQL
Using Native Dynamic SQL when
![Page 40: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/40.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 40
Hiding Source Code
• Obfuscating and wrapping refer to hiding PL/SQL code
• Protect source code• Two methods
– Wrap utility– DBMS_DDL package
![Page 41: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/41.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 41
Hiding Source Code Tips
![Page 42: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/42.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 42
Wrap Utility
![Page 43: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/43.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 43
DBMS_DDL CREATE_WRAPPED
![Page 44: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/44.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 44
Summary
• Oracle-supplied packages are pre-built packages to address common processing needs
• DBMS_OUTPUT allows data display• UTL_FILE enables reading and writing to text
files• DBMS_LOB manages LOBs• DBMS_ALERT enables event notification• UTL_MAIL creates emails
![Page 45: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/45.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 45
Summary (continued)
• UTL_HTTP enables HTML source retrieval• DBMS_DDL enables the COMPILE and
ANALYZE commands to be processed within PL/SQL
• Dynamic SQL allows identifiers and DDL statements to process within PL/SQL
• DBMS_SQL package and native dynamic SQL are two mechanisms providing dynamic SQL capabilities
![Page 46: PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 10 Oracle-Supplied Packages, Dynamic SQL, and Hiding Source Code](https://reader036.vdocuments.mx/reader036/viewer/2022081504/5697c0131a28abf838ccca7a/html5/thumbnails/46.jpg)
PL/SQL
Oracle11g: PL/SQL Programming 46
Summary (continued)
• Native dynamic SQL is simpler to code and executes more efficiently
• Two methods of hiding source code: wrap utility and DBMS_DDL package