You are previewing Oracle Web Applications: PL/SQL Developer's Intro.
O'Reilly logo
Oracle Web Applications: PL/SQL Developer's Intro

Book Description

This compact guide provides the jump-start Oracle developers need to make the transition from traditional programming to the development of useful Web applications for Oracle8i. Even readers who start out knowing nothing about HTML, PL/SQL, or Oracle's other tools will learn how to create simple Web applications in a matter of days. The book focuses on Oracle8i, but also covers Web development for earlier Oracle versions (Oracle8 and Oracle7). Background: The explosion in the use of the Internet and the Web has resulted in a whole new way of doing business. Developers who only yesterday were using COBOL to write accounts payable systems are now being asked to create a broad range of new Internet-based applications ranging from electronic commerce (e-commerce) Web sites to internal data warehouses to enterprise resource planning (ERP) systems. Unfortunately, the filesystem architectures of most Web systems aren't up to the task. The new breed of Web applications -- which are quickly becoming critical resources that companies need to survive -- demand a platform that provides production-quality tools for content management, application development, and application integration. And current Web techniques are inadequate in many ways. Oracle8i, Oracle's "Internet database," gives Web developers a way to build Web technology on top of a relational database, rather than on a traditional filesystem. With Oracle8i, companies can apply well understood, reliable, production-quality database methodologies to Web content management. Oracle8i also supports a wide variety of application development platforms and tools that are tightly integrated to the core database. Finally, Oracle8i supports technologies that help companies tie their Web-based applications into legacy applications. There is a lot to learn in Oracle8i. Not only does it enhance basic database features, it introduces Java and a variety of Web development tools. Oracle8i provides a soup-to-nuts platform for Web site and Web application development that extends traditional database concepts to Web content. It replaces the traditional filesystem used by most Web servers with a database management system. Many users are intimidated by the vast array of new technologies in Oracle8i. And yet, they are under pressure to use these technologies to build complex Web applications right now. This book gives such users a way to start using Oracle8i immediately to create useful Web applications. It is a concise, easy-to-read guide to the basic technologies developers need to understand in order to build Web applications. Contains: The book describes the following Web development tools:

  • PL/SQL-- a structured programming language that combines procedural constructs and standard SQL. It offers such features as cursors, loops, conditional and sequential control statements, exception handlers, records, tables, and constructs for developing modular code (functions, procedures, and packages).

  • PL/SQL Toolkit -- a set of PL/SQL packages supplied by Oracle for use in developing Web applications.

  • HTML -- an ASCII-based markup language used to create Web pages.

  • WebDB -- A software system for building, monitoring, and creating content-driven Web sites; it allows users to use a Web browser to access and store information in the Oracle8i database.

  • Oracle Application Server (OAS) -- an extensible Web server that uses plug-in programs called cartridges to allow database-integrated Web systems to be developed in a variety of languages (e.g., PL/SQL, Java, Perl).

  • XML -- An emerging standard for creating self-describing documents. It is similar to HTML but allows you to create your own markup tags. XML is expected to be a key technology in electronic commerce systems.

  • The book also presents several fully realized sample Web applications that will teach you how to build such applications of your own.

  • NOTE: Although this book touches on the Java features of Oracle8i, it doesn't cover Java development per se. Switching to Java represents an enormous change for most Oracle developers. This book provides an evolutionary path for readers who want to do useful Oracle8i Web development now, using mostly familiar tools. Additional books will provide Java training for those who have mastered these Web tools and want to take the next step.

    Table of Contents

    1. Oracle Web Applications: PL/SQL Developer’s Introduction
      1. Preface
        1. Goal of This Book
        2. Structure of This Book
        3. Conventions Used in This Book
        4. Comments and Questions
        5. Acknowledgments
      2. 1. Introduction
        1. The Internet Grows Up
        2. Current Web Techniques Are Inadequate
          1. Content Management
            1. Finding what you need
            2. Keeping sites up to date
            3. Tracking changes
          2. Application Development
            1. No single platform is scalable enough
            2. Developers must know too many platforms
          3. Application Integration and Electronic Data Interchange (EDI)
        3. Oracle’s Solution—Oracle8i
          1. The Internet File System
          2. HTML
          3. XML
          4. PL/SQL
          5. WebDB
          6. Oracle Application Server
          7. Java
          8. InternetLite
            1. Oracle Lite
            2. EnterpriseSync Lite
            3. AQ Lite
            4. InternetLite server and API
          9. Oracle interMedia
            1. Text data
            2. Multimedia data
            3. Spatial data
          10. Advanced Queuing
            1. Define the message payload
            2. Create and start the queue tables
            3. Enqueue and dequeue messages to/from a queue
          11. Functional Summary of Oracle8i Web Products
        4. A Roadmap to Oracle8i
          1. Connect the Database to the Web Using OAS or WebDB
          2. Develop Web Applications with HTML and PL/SQL
            1. Why HTML?
            2. Why PL/SQL?
            3. So why not Java?
          3. Start Learning XML
      3. 2. Foundations
        1. Resources
        2. Server-to-Client Communication
          1. The TCP/IP Network
          2. The Communication Port
          3. The HyperText Transfer Protocol (HTTP)
          4. The Web Browser
          5. The Uniform Resource Locator
          6. The Resource MIME Type
          7. A Helpful Analogy
        3. Content Delivery Model
          1. The HTTP Listener
          2. The PL/SQL Gateway
        4. Database Integration
          1. The PL/SQL Toolkit
          2. A PL/SQL Example
          3. Calling the Example
            1. Using a query string
            2. Using an HTML form
            3. Parameter arrays
            4. Parameter gotchas
        5. Database Security Review
          1. Database Users
          2. Database Objects
          3. Privileges
            1. System privileges
            2. Object privileges
          4. Roles
          5. Additional Security Precautions
      4. 3. WebDB
        1. Overview of WebDB
          1. Database Administration
            1. Browse database objects
            2. Administer WebDB and database security
            3. Monitor database and application performance
          2. Application Development
            1. Building database objects
            2. Building user interface components
            3. Building shared components
            4. Building custom components
          3. Content-Driven Web Site Management
            1. User-uploaded content
            2. Managing content
            3. Controlling access to content
        2. WebDB Architecture
          1. The PL/SQL Gateway
          2. Configuring a Database Access Descriptor (DAD)
            1. DAD parameters
            2. Configuration file
          3. The HTTP Listener
            1. Server settings
            2. Virtual directory mappings
            3. MIME type mappings
            4. Configuration file
      5. 4. Oracle Application Server (OAS)
        1. How OAS Returns Web Resources
          1. Static Resources Mapped to a Virtual Directory
          2. Dynamic Resources Mapped to the CGI Gateway
          3. Dynamic Resources Mapped to the Web Request Broker
            1. Cartridges
            2. WRB Executable Engines
            3. WRB dispatcher
        2. Creating Dynamic Resources
          1. Connection Management
            1. Database Access Descriptor
            2. PL/SQL agent
          2. Parameter Passing
          3. Security Issues with the PL/SQL Cartridge
      6. 5. HTML
        1. Programming in HTML
          1. Learning the Language
          2. Syntax
            1. Tags
            2. Attributes
            3. A sample document
        2. A Whirlwind Tour
          1. Structural Tags
          2. Text Formatting Tags
          3. Content Flow Tags
          4. Anchor Tags
          5. List Tags
          6. Table Tags
          7. Form Tags
            1. The < form> tag
            2. The <input> tag
            3. The <select> tag
            4. The <textarea> tag
            5. Cleaning up the form
          8. Beware Browser-Specific Extensions
      7. 6. PL/SQL
        1. Structured Programming in PL/SQL
          1. Procedures
          2. Functions
          3. Parameters
          4. Calling Procedures and Functions
            1. Positional notation
            2. Named notation
          5. Overloading
          6. Permissions
        2. Programming Constructs
          2. Variables
            1. Declaring a variable
              1. Name
              2. Datatype
              3. Default value
            2. Assigning values
            3. Constants
          3. Conditionals
          4. Loops
          5. Cursors
            1. Declaring a cursor
            2. Processing a cursor
            3. Implicit cursors
          6. Index-by Tables (Arrays)
            1. Creating an index-by table
            2. Adding elements to an index-by table
            3. Retrieving elements from an index-by table
        3. Packages
          1. The Package Specification
          2. The Package Body
          3. Example
          4. Using a Package
          5. Information Hiding
          6. Variable Persistence Throughout a Session
        4. PL/SQL Tools
          1. TOAD
          2. PL/Formatter
      8. 7. The PL/SQL Toolkit
        1. Communicating with the Outside World
          1. HTP: Generating HTML
          2. WebAlchemy
          3. HTF: Parsing HTML
        2. Text Processing
          1. OWA_TEXT: Representing Text
            1. Data structures
            2. Procedures
            3. Example
            4. Design note
          2. OWA_PATTERN: Searching and Replacing Text
            1. Regular expressions
            2. Data structures
            3. Procedures and functions
              1. The MATCH function.
              2. The AMATCH function.
              3. CHANGE.
            4. Example
        3. Maintaining State
          1. OWA_COOKIE: Storing Cookies
            1. Data structures
            2. Procedures and functions
              1. The SEND procedure.
              2. The REMOVE procedure.
              3. The GET function.
              4. The GET_ALL procedure.
          2. OWA_OPT_LOCK: Record Locking
            1. Data structures
            2. Procedures and functions
              1. The STORE_VALUES procedure.
              2. The VERIFY_VALUES function.
              3. The GET_ROWID function.
              4. The CHECKSUM function.
        4. Improving Productivity
          1. OWA_UTIL: Creating Complex HTML Structures
            1. Debugging
              1. The SHOWPAGE procedure.
              2. The SHOWSOURCE procedure.
              3. The GET_PROCEDURE function.
              4. The WHO_CALLED_ME procedure.
            2. Querying the environment
              1. The PRINT_CGI_ENV procedure.
              2. The GET_CGI_ENV function.
              3. The IP_ADDRESS datatype.
              4. The GET_OWA_SERVICE_PATH function.
            3. Representing dates
              1. The CHOOSE_DATE procedure.
              2. The DATETYPE datatype.
              3. The TODATE function.
            4. HTML and HTTP utilities
              1. The SIGNATURE procedure.
              2. The MIME_HEADER procedure.
              3. The STATUS_LINE procedure.
              4. The REDIRECT_URL procedure.
              5. The HTTP_HEADER_CLOSE procedure.
            5. Creating complex HTML structures
              1. The TABLEPRINT function.
              2. The BIND_VARIABLES procedure.
              3. The CELLSPRINT procedure.
              4. The LISTPRINT procedure.
              5. The CALENDARPRINT procedure.
          2. OWA_SEC: Managing Security
      9. 8. Developing Applications
        1. Designing a Web Application
          1. Evaluate Development Options
          2. Create a Storyboard
          3. Create a Data Model
          4. Use PL/SQL Packages
        2. Example 1: An Anonymous Survey
          1. Storyboard
          2. Data Model
          3. Implementation Notes
          4. The EMP_SURVEY Package
            1. Specification
            2. Body
              1. The display_survey_list procedure
              2. The answer_survey procedure
              3. The process_survey procedure
              4. The view_results procedure
          5. Security Privileges
          6. Summary
        3. Example 2: A Discussion Forum
          1. Storyboard
          2. Data Model
          3. Implementation Notes
          4. The GENERAL_FORM Package
            1. Specification
            2. Body
          5. The FORUM_USERS Package
            1. Specification
            2. Body
              1. The login_form procedure.
              2. The login procedure.
              3. The get_current_user function.
              4. The create_user_form procedure
              5. The save_user_info procedure.
          6. The FORUM Package
            1. Specification
            2. Body
              1. The print_thread_links procedure.
              2. The current_ forum_list procedure.
              3. The view_message procedure.
              4. The create_msg_form procedure.
              5. The save_message procedure.
          7. Security Privileges
          8. What Next?
      10. 9. XML
        1. Motivations for XML
        2. XML Syntax
        3. The Document Type Definition (DTD)
        4. The XML Parser
        5. Example: Generating an XML Invoice from Oracle
          1. Specification
          2. Body
        6. PLSXML Utilities and Demos
        7. XML and iFS
      11. A. Appendix: Resources for the Oracle Web Developer
        1. Books
        2. Other Publications
        3. Organizations
        4. Web Sites
        5. Discussion Groups
      12. Index
      13. Colophon