Explore 1.5M+ audiobooks & ebooks free for days

Only $12.99 CAD/month after trial. Cancel anytime.

ODP.NET Developer’s Guide: Oracle Database 10g Development with Visual Studio 2005 and the Oracle Data Provider for .NET
ODP.NET Developer’s Guide: Oracle Database 10g Development with Visual Studio 2005 and the Oracle Data Provider for .NET
ODP.NET Developer’s Guide: Oracle Database 10g Development with Visual Studio 2005 and the Oracle Data Provider for .NET
Ebook571 pages2 hours

ODP.NET Developer’s Guide: Oracle Database 10g Development with Visual Studio 2005 and the Oracle Data Provider for .NET

Rating: 0 out of 5 stars

()

Read preview

About this ebook

This book uses many hands-on examples to show you how to use ODP.NET and Oracle Developer Tools from within Visual Studio 2005 to access Oracle Database 10g. The book is written for professional .NET developers who need to work with and take full advantage of Oracle Database 10g using Visual Studio 2005. Developers are expected to be familiar with Visual Basic.NET 2005 and have minimum knowledge of Oracle SQL and PL/SQL.
LanguageEnglish
PublisherPackt Publishing
Release dateJun 25, 2007
ISBN9781847191977
ODP.NET Developer’s Guide: Oracle Database 10g Development with Visual Studio 2005 and the Oracle Data Provider for .NET

Related to ODP.NET Developer’s Guide

Related ebooks

Information Technology For You

View More

Reviews for ODP.NET Developer’s Guide

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    ODP.NET Developer’s Guide - Jagadish Chatarji Pulakhandam

    (missing alt)

    Table of Contents

    ODP.NET Developer's Guide

    Credits

    About the Authors

    About the Reviewer

    Preface

    What This Book Covers

    Conventions

    Reader Feedback

    Customer Support

    Downloading the Example Code for the Book

    Errata

    Questions

    1. Introduction to ODP.NET

    Introduction to ODP.NET

    Why Use ODP.NET?

    Oracle Database Access from .NET Applications

    What Do We Require to Work with ODP.NET?

    Introduction to Oracle Database Extensions for .NET

    Oracle Database Extensions for .NET

    How does .NET Work within Oracle Database?

    Processing of .NET Stored Procedure with Oracle

    Introduction to Oracle Developer Tools for Visual Studio

    Summary

    2. Connecting to Oracle

    Provider-Independent Model in ADO.NET 2.0

    Listing All Installed .NET Data Providers

    Enumerating all Oracle Data Sources Available

    Connecting to Oracle Databases from .NET

    Connecting Using .NET Data Provider Factory Classes

    Connecting Using .NET Data Provider for OLEDB

    Connecting Using .NET Data Provider for ODBC

    Connecting using Microsoft's .NET Data Provider for Oracle

    Connecting Using Oracle Data Provider for .NET (ODP.NET)

    Connecting with Connection Pooling

    Connecting with System-Level Privileges or DBA Privileges

    Dynamic Connecting String Using OracleConnectionStringBuilder and app.config

    Embedding a tnsnames.ora Entry-like Connection String

    Connecting to a Default Oracle Database

    Connecting Using Windows Authentication (Single Sign‑On)

    Summary

    3. Retrieving Data from Oracle Using ODP.NET

    Fundamental ODP.NET Classes to Retrieve Data

    Retrieving Data Using OracleDataReader

    Retrieving a Single Row of Information

    Using Using for Simplicity

    Retrieving Multiple Rows on to the Grid

    Pulling Information Using Table Name

    Retrieving Typed Data

    Retrieving Typed Data Using Ordinals

    Retrieving Typed Data Using Column Names

    Working with Data Tables and Data Sets

    Retrieving Multiple Rows into a DataTable Using OracleDataAdapter

    Filling a DataTable Using OracleDataReader

    Retrieving a Single Row of Information Using OracleDataAdapter

    Working with DataTableReader

    Populating a Dataset with a Single Data Table

    Populating a Dataset with Multiple Data Tables

    Presenting Master-Detail Information Using a Dataset

    More About the OracleCommand Object

    Retrieving a Single Value from the Database

    Handling Nulls when Executing with ExecuteScalar

    Handling Nulls when Working with OracleDataReader

    Working with Bind Variables together with OracleParameter

    Working with OracleDataAdapter together with OracleCommand

    Techniques to Improve Performance while Retrieving Data

    Summary

    4. Manipulating Data in Oracle Using ODP.NET

    Executing DML or DDL Statements Using OracleCommand

    Using INSERT with OracleCommand

    Using UPDATE with OracleCommand

    Using DELETE with OracleCommand

    Multiple Inserts Using Statement Caching

    Multiple Inserts Using Array Binding

    Creating an Oracle Table Dynamically Using ODP.NET

    Updating Offline Data to the Database Using OracleDataAdapter

    Working with OracleCommandBuilder and OracleDataAdapter

    Working with Transactions Using ODP.NET

    Handling Oracle Errors and Exceptions

    Displaying a Single or First Error

    Displaying Multiple Errors

    Summary

    5. Programming ODP.NET with PL/SQL

    Working with Anonymous PL/SQL Blocks

    Executing Anonymous PL/SQL Blocks

    Passing Information to Anonymous PL/SQL Blocks

    Retrieving Information from Anonymous Blocks

    Working with PL/SQL Stored Procedures and Functions

    Executing a PL/SQL Stored Procedure

    Passing Parameter Values to a PL/SQL Stored Procedure

    Using an Anonymous PL/SQL Block to Execute a PL/SQL Stored Procedure

    Retrieving Output Parameters from a PL/SQL Stored Procedure

    Passing IN and Getting OUT Simultaneously

    Handling User-Defined Application Errors

    Executing a PL/SQL User-Defined Function

    PL/SQL Packages, Tables, and REF CURSOR

    Executing Routines in a PL/SQL Package

    Executing a Procedure in a PL/SQL Package

    Executing a User-Defined Function in a PL/SQL Package

    Passing Arrays to and Receiving Arrays from Oracle Database

    Sending an Array to Oracle Database

    Receiving an Array from Oracle Database

    Working with REF CURSOR Using ODP.NET

    Pulling from REF CURSOR Using OracleDataReader

    Filling a Dataset from REF CURSOR

    Working with Multiple Active Result Sets (MARS)

    Summary

    6. Dealing with Large Objects (LOBs)

    Working with BFILEs

    Setting Up the Environment to Work with BFILEs

    Adding a New Row Containing BFILE

    Updating an Existing BFILE Row

    Retrieving BFILE Information from a Database

    Retrieving Properties of a BFILE

    Working with CLOBs

    Inserting Huge Text Information into Oracle Database

    Updating CLOB Information Using OracleClob

    Retrieving CLOB Information from Oracle Database

    Reading a Text File and Uploading as CLOB

    Working with BLOBs

    Setting Up the Environment to Work with BLOBs

    Uploading Images to Oracle Database Using BLOB

    Retrieving Images from Oracle Database Using BLOB

    Uploading Documents to and Retrieving Documents from Oracle Database

    Summary

    7. XML and XML DB Development with ODP.NET

    A Fast Track on XML with Oracle

    Generating XML from Existing Rows in Tables

    Generate XML Using ADO.NET DataSet

    Generate XML Using ExecuteXMLReader

    Generate XML Using DBMS_XMLGEN

    Converting Rows to HTML Using XML and XSLT

    Manipulating Rows in a Table Using XML

    Inserting Rows into Oracle Using XML

    Updating Rows into Oracle Using XML

    Working with Native XML in Oracle Database

    Inserting XML Data into XMLType Using Traditional INSERT

    Updating XML Data in XMLType Using Traditional UPDATE

    Inserting XML Data Using OracleXmlType

    Retrieving and Updating XML Data Using OracleXmlType

    Extracting Individual Node Information of an XMLType Value

    Summary

    8. Application Development Using ODP.NET

    Notifying Applications of Database Changes

    Catching Notifications

    Catching Multiple Notifications

    Identifying Rows Modified During Notifications

    Developing Long-Running Applications

    The Devil of Applications: Not Responding

    Asynchronous Task with Multi-Threading

    Developing Web Applications Using ASP.NET and ODP.NET

    Web Development Using Smart Data Binding

    Populating an ASP.NET DropDownList Control

    Linking an ASP.NET GridView Control with a DropDownList Control

    Add, Update, or Delete a Row Using GridView and FormView

    Working with Web Controls Manually

    Developing Web Reports Using ASP.NET

    Creating a Strongly-Typed Dataset Using Designer

    Designing and Binding a Report to the Dataset

    Grouping and Displaying Sub-Totals

    Embedding Charts (Graphs) in Reports

    Object-Oriented Development Using ASP.NET and ODP.NET

    Developing a Simple Oracle Database Helper Class

    Developing a Simple Business Logic Class

    Working with ObjectDataSource in an ASP.NET 2.0 Web Form

    Developing Web Services Using ODP.NET

    Creating the .NET XML Web Service

    Consuming the Web Service from ASP.NET

    Developing Smart Device Applications

    Introducing Microsoft Windows Mobile

    Consuming a Web Service from Pocket PC

    Summary

    9. Introduction to Oracle Developer Tools for Visual Studio 2005

    Features of Oracle Developer Tools

    Connecting to Oracle from Visual Studio Using Oracle Explorer

    Retrieving Oracle Information from Visual Studio Using ODT

    Working with Oracle Database Objects from Visual Studio Using ODT

    Dealing with Tables, Views, and Sequences Using ODT

    Creating Stored Procedures Using ODT

    Debugging PL/SQL Stored Procedures from Visual Studio

    .NET CLR Stored Procedures in Oracle

    Taking Advantage of Automatic .NET Code Generation

    Summary

    Index

    ODP.NET Developer's Guide

    Jagadish Chatarji Pulakhandam

    Sunitha Paruchuri


    ODP.NET Developer's Guide

    Oracle Database 10g Development with Visual Studio 2005 and the Oracle Data Provider for .NET

    Copyright © 2007 Packt Publishing

    All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

    Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, Packt Publishing, nor its dealers or distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

    Packt Publishing has endeavored to provide trademark information about all the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

    First published: June 2007

    Production Reference: 1150607

    Published by Packt Publishing Ltd.

    32 Lincoln Road

    Olton

    Birmingham, B27 6PA, UK.

    ISBN 978-1-847191-96-0

    www.packtpub.com

    Cover Image by www.visionwt.com

    Credits

    Authors

    Jagadish Chatarji Pulakhandam

    Sunitha Paruchuri

    Reviewer

    Steven M. Swafford

    Development Editor

    Douglas Paterson

    Assistant Development Editor

    Mithil Kulkarni

    Technical Editor

    Divya Menon

    Editorial Manager

    Dipali Chittar

    Project Manager

    Patricia Weir

    Project Coordinator

    Abhijeet Deobhakta

    Indexer

    Bhushan Pangaonkar

    Proofreader

    Chris Smith

    Production Coordinator

    Manjiri Nadkarni

    Cover Designer

    Manjiri Nadkarni

    About the Authors

    Jagadish Chatarji Pulakhandam currently works as a .NET Architect and is responsible for analyzing/designing enterprise-level .NET applications. He has worked with Oracle since database version 7.1 and has been in the IT field for about 12 years. Apart from Oracle and .NET, he has a good knowledge of developing corporate software and web applications, designing and implementing databases, designing and implementing data warehouses, and working with enterprise reporting software. During his free time, he contributes technical articles to OTN (Oracle Technology Network) and to the world of developer communities.

    I dedicate this book to my mother Dhana Laxmi. Without her patience, support and encouragement, I would never be to this stage. A special thanks to my uncle Ch. Jagadish Kumar, who is the basis for change in my life. And several thanks to all of my relatives and friends who encouraged and supported me at various milestones in my life.

    A final thanks to every member of this book project from PACKT Publishing and a special thanks to Douglas Paterson, who offered me the first chance of writing this first book in my life.

    Sunitha Paruchuri has been programming with Microsoft tools and Oracle since 1997. She has developed numerous desktop, web, mobile, and distributed applications using Microsoft .NET and has good experience with other Microsoft products like Microsoft SQL Server, Microsoft Sharepoint Portal Server, etc.

    I dedicate this book to my parents Harnadha babu and Aruna Kumari and special thanks to my sister (Bhagya Laxmi), all of my relatives and friends who framed, encouraged and supported me in developing my career.

    About the Reviewer

    Steven M. Swafford began developing software in 1995 while serving in the United States Air Force (USAF). Upon leaving the USAF he continued developing leading edge solutions in support of the America's war fighters as part of the original USAF enterprise portal development team. His roots are now in central Alabama where he works as a senior software engineer developing Java- and .NET-based applications and web services. Steven credits his wife Su Ok and daughter Sarah for supporting and inspiring his ongoing passion for software development and the resultant challenges of life near the bleeding edge. Steven was honored by the Microsoft Corporation in 2006 as a Microsoft ASP.NET Visual Developer MVP. He would like to thank Tim Stewart and Edward Habal who were his professional mentors and to this day remain close friends. Steven's personal website is located at http://www.radicaldevelopment.net and his blog is located at http://aspadvice.com/blogs/sswafford/.

    Preface

    Oracle's ODP.NET is a .NET data provider that can connect to and access Oracle databases with tight integrity. It can be used from any .NET language, including C# and VB.NET. This book will show you how ODP.NET is the best choice for connecting .NET applications with Oracle database. We will be dealing with the concepts of ODP.NET and its requirements, working with SQL, PL/SQL, and XML DB using ODP.NET, looking at application development with ODP.NET: Web Applications, Web Services, and Mobile Applications. We will also learn to manipulate Oracle databases from within Visual Studio using Oracle Developer Tools for Visual Studio.

    What This Book Covers

    Chapter 1 introduces the concept of Oracle Database Extensions for .NET and provides information about Oracle Developer Tools for Visual Studio.

    Chapter 2 introduces the Provider-Independent Model in ADO.NET 2.0, and shows how to connect to Oracle databases from .NET, working with .NET data providers, connection pooling, system privileged connection, and single sign-on etc.

    Chapter 3 shows you several methods to retrieve data from an Oracle database. You will work with the core ODP.NET classes like OracleCommand, OracleDataReader, OracleDataAdapter, OracleParameter, and ADO.NET classes like DataSet, DataTable, and DataRow etc.

    Chapter 4 is about inserting, updating, and deleting data in the database. You will also learn about statement caching, array binding, working with offline data, implementing transactions, and handling errors and exceptions encountered during database work.

    Chapter 5 deals with working with PL/SQL blocks, PL/SQL stored procedures, and functions. It also teaches you how to execute routines in PL/SQL packages, how to pass arrays to and receive arrays from the Oracle database, and working with REF CURSOR using ODP.NET.

    Chapter 6 is completely dedicated to dealing with large objects in Oracle. This chapter illustrates concepts, configurations, and programming for BFILE, BLOB, and CLOB (or NCLOB) in conjunction with ODP.NET.

    Chapter 7 gives details about Oracle XML DB, an add-on feature of Oracle database. It provides information about generating XML from existing rows in tables, manipulating rows in a table using XML, and working with native XML in the Oracle database.

    Chapter 8 deals with real-time application development scenarios like Oracle database change notifications, asynchronous application development, web application development using ASP.NET 2.0, web reporting (including grouping, sub-totals, charts, etc.), Object-Oriented development with ODP.NET and ASP.NET, XML web-services development using ODP.NET, and Smart Device Application development (for clients like the Pocket PC).

    Chapter 9 introduces you to Oracle Developer Tools for Visual Studio 2005. It teaches you to connect to Oracle from the Visual Studio 2005 environment, retrieve Oracle information from Visual Studio, and work with database objects from Visual Studio. It also provides information about how to create and debug PL/SQL stored procedures and .NET CLR stored procedures in Oracle.

    Conventions

    In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

    There are three styles for code. Code words in text are shown as follows: Connecting to a default Oracle database is purely dependent on the ORACLE_SID key available in your registry.

    A block of code will be set as follows:

    Dim ProviderName As String = _

    Oracle.DataAccess.Client

    Dim fctry As DbProviderFactory = -

    DbProviderFactories.GetFactory(ProviderName)

    When we wish to draw your attention to a particular part of a code block, the relevant lines or items will be made bold:

    Dim dt As DataTable = _

    DbProviderFactories.GetFactoryClasses()

     

    Me.DataGridView1.DataSource = dt

    New terms and important words are introduced in a bold-type font. Words that you see on the screen, in menus or dialog boxes for example, appear in our text like this: clicking the Next button moves you to the next screen.

    Note

    Warnings or important notes appear in a box like this.

    Note

    Tips and tricks appear like this.

    Reader Feedback

    Feedback from our readers is always welcome. Let us know what you think about this book, what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

    To send us general feedback, simply drop an email to <[email protected]>, making sure to mention the book title in the subject of your message.

    If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or email .

    If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.

    Customer Support

    Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

    Downloading the Example Code for the Book

    Visit http://www.packtpub.com/support, and select this book from the list of titles to download any example code or extra resources for this book. The files available for download will then be displayed.

    Note

    The downloadable files contain instructions on how to use them.

    Errata

    Although we have taken every care to ensure the accuracy of our contents, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in text or code—we would be grateful if you would report this to us. By doing this you

    Enjoying the preview?
    Page 1 of 1