ODP.NET Developer’s Guide: Oracle Database 10g Development with Visual Studio 2005 and the Oracle Data Provider for .NET
()
About this ebook
Related to ODP.NET Developer’s Guide
Related ebooks
Access 2007 VBA Programmer's Reference Rating: 5 out of 5 stars5/5Oracle SQL and PL/SQL Rating: 5 out of 5 stars5/5ORACLE PL/SQL Interview Questions You'll Most Likely Be Asked Rating: 5 out of 5 stars5/5Oracle SQL Developer 2.1 Rating: 0 out of 5 stars0 ratingsOracle Advanced PL/SQL Developer Professional Guide Rating: 4 out of 5 stars4/5Visual Basic 2010 Coding Briefs Data Access Rating: 5 out of 5 stars5/5Concise Oracle Database For People Who Has No Time Rating: 0 out of 5 stars0 ratingsThe Programmer’s Guide to Microsoft Access Rating: 3 out of 5 stars3/5Mastering Oracle Database: From Basics to Expert Proficiency Rating: 0 out of 5 stars0 ratingsOCA Oracle Database 11g Database Administration I: A Real-World Certification Guide Rating: 4 out of 5 stars4/5Oracle Data Integrator 11g Cookbook Rating: 0 out of 5 stars0 ratingsOA Framework Beginners Guide Rating: 0 out of 5 stars0 ratingsGetting started with OpenOffice Base Rating: 0 out of 5 stars0 ratingsDatabase Management for Business Leaders: Building and Using Data Solutions That Work for You Rating: 0 out of 5 stars0 ratingsIntroduction to Oracle Database Administration Rating: 5 out of 5 stars5/5Starting Database Administration: Oracle DBA Rating: 3 out of 5 stars3/5C# for Beginners: Learn in 24 Hours Rating: 0 out of 5 stars0 ratingsPLI Basic Training Using VSAM, IMS and DB2 Rating: 1 out of 5 stars1/5From Zero to Oracle Hero: A Journey Through SQL, PL/SQL, and DBA Dark Arts Rating: 0 out of 5 stars0 ratingsOracle Business Intelligence : The Condensed Guide to Analysis and Reporting Rating: 0 out of 5 stars0 ratingsMicrosoft Visual Basic Interview Questions: Microsoft VB Certification Review Rating: 0 out of 5 stars0 ratingsDecoding Oracle Database: A Comprehensive Guide to Mastery Rating: 0 out of 5 stars0 ratingsC# 2010 Coding Briefs Data Access Rating: 0 out of 5 stars0 ratingsOracle 11g For Dummies Rating: 0 out of 5 stars0 ratingsOracle : Data Manipulation, Knowledge Discovery & Reporting Using Ms Access Rating: 0 out of 5 stars0 ratingsRelational Database Systems Rating: 0 out of 5 stars0 ratingsComprehensive Oracle Database Management: Strategies for Performance Tuning and System Optimization Rating: 0 out of 5 stars0 ratings(Part 1) You Must Learn VBScript for QTP/UFT: Don't Ignore The Language For Functional Automation Testing Rating: 5 out of 5 stars5/5Oracle Database Mastery: Comprehensive Techniques for Advanced Application Rating: 0 out of 5 stars0 ratings
Information Technology For You
CompTia Security 701: Fundamentals of Security Rating: 0 out of 5 stars0 ratingsCompTIA A+ CertMike: Prepare. Practice. Pass the Test! Get Certified!: Core 1 Exam 220-1101 Rating: 0 out of 5 stars0 ratingsData Analytics for Beginners: Introduction to Data Analytics Rating: 4 out of 5 stars4/5Creating Online Courses with ChatGPT | A Step-by-Step Guide with Prompt Templates Rating: 4 out of 5 stars4/5COMPUTER SCIENCE FOR ROOKIES Rating: 0 out of 5 stars0 ratingsHow to Write Effective Emails at Work Rating: 4 out of 5 stars4/5An Ultimate Guide to Kali Linux for Beginners Rating: 3 out of 5 stars3/5Introduction to Information Systems: Information Technology Essentials, #1 Rating: 0 out of 5 stars0 ratingsA Mind at Play: How Claude Shannon Invented the Information Age Rating: 4 out of 5 stars4/5Personal Knowledge Graphs: Connected thinking to boost productivity, creativity and discovery Rating: 5 out of 5 stars5/5Health Informatics: Practical Guide Rating: 0 out of 5 stars0 ratingsDevOps Handbook: What is DevOps, Why You Need it and How to Transform Your Business with DevOps Practices Rating: 4 out of 5 stars4/5ChatGPT: The Future of Intelligent Conversation Rating: 4 out of 5 stars4/5AWS Certified Cloud Practitioner: Study Guide with Practice Questions and Labs Rating: 5 out of 5 stars5/5Unity Game Development Essentials Rating: 5 out of 5 stars5/5CompTIA ITF+ CertMike: Prepare. Practice. Pass the Test! Get Certified!: Exam FC0-U61 Rating: 5 out of 5 stars5/5Cybersecurity Playbook for Executives Rating: 0 out of 5 stars0 ratingsUnlocking the Power of Agentic AI: Transforming Work and Life Rating: 5 out of 5 stars5/5Practical Ethical Hacking from Scratch Rating: 5 out of 5 stars5/5Design and Build Modern Datacentres, A to Z practical guide Rating: 3 out of 5 stars3/5The Rise of AI Income: Using Artificial Intelligence for Financial Success Rating: 5 out of 5 stars5/5A Practical Guide for IoT Solution Architects Rating: 5 out of 5 stars5/5Agile Business Architecture for Digital Transformation - V2 Rating: 5 out of 5 stars5/5CompTIA Network+ CertMike: Prepare. Practice. Pass the Test! Get Certified!: Exam N10-008 Rating: 0 out of 5 stars0 ratingsExcel VBA: A Step-By-Step Tutorial For Beginners To Learn Excel VBA Programming From Scratch: 1 Rating: 4 out of 5 stars4/5Cybersecurity for Beginners : Learn the Fundamentals of Cybersecurity in an Easy, Step-by-Step Guide: 1 Rating: 0 out of 5 stars0 ratingsQuantum Computing for Programmers and Investors: with full implementation of algorithms in C Rating: 5 out of 5 stars5/5Learning Microsoft Endpoint Manager: Unified Endpoint Management with Intune and the Enterprise Mobility + Security Suite Rating: 0 out of 5 stars0 ratingsLinux Command Line and Shell Scripting Bible Rating: 3 out of 5 stars3/5
Reviews for ODP.NET Developer’s Guide
0 ratings0 reviews
Book preview
ODP.NET Developer’s Guide - Jagadish Chatarji Pulakhandam
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