Click here to Skip to main content
6,594,432 members and growing! (14,247 online)
Email Password   helpLost your password?
Languages » C# » Applications     Intermediate License: The Code Project Open License (CPOL)

Bulk Insert using ODP.NET

By viswaInfotech

Bulk Insert using ODP.NET
C# (C# 1.0, C# 2.0, C# 3.0), SQL, .NET, Dev
Posted:7 May 2008
Views:13,327
Bookmarked:11 times
Announcements
Loading...
 
Search    
Advanced Search
Add to IE Search
printPrint   add Share
      Discuss Discuss   Broken Article?Report  
3 votes for this article.
Popularity: 1.11 Rating: 2.33 out of 5
1 vote, 33.3%
1

2

3

4
2 votes, 66.7%
5

Introduction

This article explains the bulk insert concept from the front end.

Background

The pre-requisite for this is ODP.NET which can be downloaded from this link.

Using the Code

First you have to add the OracleAccess to your project reference.

add reference

Select Oracle.DataAccess from .NET components.

Import

Import the Oracle.DataAccess in your class file.

// import oracle Dataacces in your class file
using Oracle.DataAccess.Client;   

After importing the Oracle.DataAccess.Client, create the connection string.

Connection Details

// create the connection string
// Give your Database details in the connection string
OracleConnection objConn = 
    new OracleConnection("data source=***;user id=***;password=***"); 

Bulk Insert

To bulk insert from the front end itself, you have to create an array object and add the values into it. The array will be passed as the parameter to the procedure, which will contain the insert query.

//creating an array
string strEmpName = new string[0];
string strEmpAge = new string[0];

First, the array size is initialized to length 0. Before adding a value into an array, the size of the array should be resized.

// Resizing the array
public void Resize_Array(int arrCount)
{
    Array.Resize(ref strEmpName , arrCount + 1);
    Array.Resize(ref strEmpAge, arrCount + 1);        
}

To add the values into the array:

// Add values into array
Resize_Array(1);
strEmpName[0] ="sam";
strEmpAge[0]="25";

Resize_Array(2);
strEmpName[1] ="john";
strEmpAge[2]="25";

Backend Procedure

Create the procedure in Oracle:

// Create a procedure in your back end
create or replace PROCEDURE Sample_Bulk_Insert
(
  INS_EMP_NAME       IN   VARCHAR2,
  INS_EMP_AGE        IN   NUMBER,
)
is
begin

INSERT INTO EMP(NAME,AGE)
VALUES (INS_EMP_NAME, INS_EMP_AGE);

 COMMIT;
end;

After creating the procedure, call the procedure from your code and pass the array as the parameter to the procedure.

Calling Procedure

// create an Oracle command object
OracleCommand objCom = new OracleCommand();

// set the command type as stored procedure
objCom.CommandType = CommandType.StoredProcedure;
objCom.CommandText = "Sample_Bulk_Insert";

// add the parameter you need to pass to the procedure
OracleParameter param1 =objCom.Parameters.Add("INS_EMP_NAME",strEmpName);
OracleParameter param2 =objCom.Parameters.Add("INS_EMP_AG",strEmpAge);

param1.Size=200;
param2.Size=10;

/* The array length has to be passed as the Arraycount so that ODP.NET will execute 
the Oracle procedure from the backend, the number of times mentioned in arraycount. 
This loop is done by Oracle itself. So in a single connection 100's of records 
can be inserted.
*/
objCom.ArrayBindCount = strEmpName.Length;

objCom.ExecuteNonQuery();

History

  • 8th May, 2008: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

viswaInfotech


Member

Occupation: Software Developer
Company: 3i infotech ltd
Location: India India

Other popular C# articles:

Article Top
You must Sign In to use this message board.
FAQ FAQ 
 
Noise Tolerance  Layout  Per page   
 Msgs 1 to 3 of 3 (Total in Forum: 3) (Refresh)FirstPrevNext
QuestionCan we do Bulk Insert without a Procedure in the back_end? PinmemberMehdiAnis7:23 27 Oct '08  
AnswerRe: Can we do Bulk Insert without a Procedure in the back_end? PinmemberJinxter20:49 8 Jun '09  
GeneralAlign the text Pinmemberbalajikrishn4:42 8 May '08  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 7 May 2008
Editor: Deeksha Shenoy
Copyright 2008 by viswaInfotech
Everything else Copyright © CodeProject, 1999-2009
Web19 | Advertise on the Code Project