Tuesday, January 19, 2010

How to pass arrays from .Net C# to Oracle

Guess you have the following query

select * from table where table.id in (:MyIDList)

and you want to pass a number of IDs in the binding variable :MyIDList from C# to your Oracle SQL. If you now check the types of binding variables available for this job, you find out that this Oracle only supports scalar types as binding variables.
If you now dig further you find a couple of bright solution that are all based on splitting up some string (varchar2) into several elements. But due to the fact, that the length of varchar2 binding variables is limited to 4/32K SQL/PLSQL this is not a scalable solution to the problem.

Even if you think you are smart, and you try a string replace of :MyIDList with the elements like 'a','b','c' let me assure you that the limit for written elements in an in statement is 1000. Also your performance will degrade significantly, as the query cache won't recognize the SQL as being executed before and therefore Oracle has to recompile it with every execution.

Is it impossible to pass an variable length array to SQL?

Let me put it straight!
Yes and No.

In pure SQL it is impossible to pass a variable length array to SQL.

But in PL/SQL it is not.

"Yes great", you think, "but I need it in SQL!"

The trick is a PL/SQL wrapper to SQL!

Simply use the following ingredients:

Define 2 global types (and don't try to be smart here. We need IDType for couple of reasons):

CREATE OR REPLACE
type IDTYPE as object (
id varchar2(20)
);

CREATE OR REPLACE
type IDTABLETYPE as table of IDType;

In PL/SQL now create a package

CREATE OR REPLACE PACKAGE MYPACKAGE
as

type stringTableType is table of varchar2(20) index by binary_integer;

procedure GetMyTableByIDs
(
p_MyIDList IN stringTableType,
p_outRefCursor out RefCursorType
);

end;

CREATE OR REPLACE PACKAGE BODY MYPACKAGE
as

TYPE RefCursorType IS REF CURSOR;
procedure GetMyTableByIDs
(
p_MyIDList IN stringTableType,
p_outRefCursor out RefCursorType
)
as
iMyIDList IDTableType;
begin

iMyIDList := IDTableType();
iMyIDList.Extend(p_MyIDList.count);

for i in p_MyIDList.First .. p_MyIDList.Last
loop
iMyIDList(i) := IDType(p_MyIDList(i));
end loop;

open p_outRefCursor
for
select * from table where table.id in (select id from table(iMyIDList));

end GetMyTableByIDs;

end;

What is going on here?

First thing you notice is that we have 2 very similar array (table) types.

Globally we defined the

type IDTABLETYPE as table of IDType -- IDType is varchar2(20)

This is in Oracle terms a "Nested Table". This type is available in SQL and PL/SQL. IDType brings the property "ID" of type varchar2(20).
In PL/SQL we defined the very similar type:

type stringTableType is table of varchar2(20) index by binary_integer;

This is an "index by table" or "associative array" in oracle terms. Associative arrays are better understood as "HashTable" and are available in PL/SQL only. For a more detailed explanation of the differences please have a look at "Collection Types in PL/SQL".

But why do you copy the arrays one by one?

Because you now see that Oracle has obviously 2 different development units for SQL and PL/SQL. And they do not seem to talk very much together.

The result of 3 days in short:
  • There is no way to pass a nested table as parameter to a stored procedure in C#
  • There is no way to use a associative array in SQL
  • There is no way to assign/initialize a nested table to/with an associative array

Great, but how do we use it in C#?

OracleConnection conn = new OracleConnection("MyConnectionString");
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "MyPackage.GetMyTableByIDs";
cmd.CommandType = CommandType.StoredProcedure;
cmd.BindByName = true;

cmd.Parameters.Add(new OracleParameter("p_outRefCursor", OracleDbType.RefCursor)).Direction = ParameterDirection.Output;

cmd.Parameters.Add(new OracleParameter("p_MyIDList", OracleDbType.Varchar2)
{
CollectionType = OracleCollectionType.PLSQLAssociativeArray,
Value = my_list_with_ids.ToArray()
}

);

da = new OracleDataAdapter(cmd);

da.Fill(myDataSet);

It's not working!

I can't find neither

cmd.BindByName = true;

nor

OracleCollectionType.PLSQLAssociativeArray

The constraint of the solution is that you have to use Oracle .NET driver (Oracle.DataAccess) instead of the the Microsoft (System.Data.OracleClient) driver. But with .Net 4 the Microsoft's Oracle driver is marked deprecated anyway. So get used to it.

This is it. The only way to pass an array to a SQL.

"Holy shivers!" you think. This is a lot of glue for a simple task like this!

Basically yes, BUT
You can do 3 things now:
1.) I use a macro that converts my SQL into PL/SQL by automatically replacing the binding variable :MyIDList with the PL/SQL Parameter p_myIDList.
2.) You can tune your performance significantly by rewriting your SQL
3.) You can clean up your code a lot by using default values

Improve overall performance

Our former SQL

select * from table where table.id in (select id from table(iMyIDList))

becomes unbearable slow with a large number of ID's and lines in table. What you can do now is to rewrite our SQL to

select * from table where table.id
join (select id from table(iMyIDList)) IdFilter on table.id = IdFilter.id

And if you want to develop in SQL and simply convert it with our macro you can add the following function to your package:

FUNCTION GetDefaultTable
(
param varchar2
)
RETURN IDTableType
is
begin
return IDTableType(IDType(param));
end;

and rewrite your regular SQL to:

select * from table where table.id
join (select id from table(MyPackage.GetDefaultTable(:MyIDList)) IdFilter
on table.id = IdFilter.id

Use PL/SQL defaults:

A feature of our PL/SQL is that you can define default values for all parameters.
In a simple case this is:

procedure GetSomeThing
(
p_param1 in varchar2 default 'SomeDefaultValue',
);

but what do we do with our associative array?

The fancy part about default parameters is that the value can be a call to function.....

So

procedure GetSomeThing
(
p_MyIDList IN stringTableType default GetDefaultTable('DefaultValueForElement'),
p_param1 in varchar2 default 'SomeDefaultValue',
p_outRefCursor out RefCursorType
);

works nice and easy.

in combination with the line in C#

cmd.BindByName = true;

what you can do now is only pass parameters that differ from their defaults what can be used to write a much nicer code. Instead of passing all the parameters defined a for each procedure defined (results in a clunky piece of code), you just just set the parameter for any stored procedure if the associated value is non-default.

162 comments:

moodboom said...

Well done, I came to the same conclusions. Why is this so hard, and not documented well anywhere? You'd think Oracle and Microsoft would be able to work out a better solution. Oh well, thanks for breaking down the working solution so well!

Michael said...

Thanks for the post, proved very useful, however for anyone else reading be aware of a couple of things
1) You need to add the following to the package spec
TYPE RefCursorType IS REF CURSOR;
If you don't you'll get an error from Oracle while compiling the package.
2) In the package body, before you call Extend, add the following
iMyIDList := IDTableType();
If you don't you'll get an ORA-06531 when you try to execute the function.

elLoco said...

Thanks! Just updated the article

Anonymous said...

How many elements is considered large for the Table(delimited) usage that it starts to slow down the performance? Over 100? 1,000? 10,000?

elLoco said...

I guess you refer to

"select * from table where table.id in (select id from table(iMyIDList))"

100 are ok
1000 can be acceptable
10000 sucks

performance degrades exponentially

George Joseph said...

There is an alternative to binding the "IN" clause. However it doesn't use bind variables, which in my opinion is a really bad idea especially in concurrent situations.

How it works is that the in clause be stored as string variable with comma seperated values. Take special note of the leading and trailing comma here
var_in_string=',1,2,3,4,'

Then construct the query block in this manner.

SELECT * FROM TABLE WHERE var_in_string LIKE '%,'||ID||',%'

This basically does a pattern matching between the passed in variable and the column value of id in the database table after concatenating a comma

so if the table has values of id
(1,9,0,10)

the comparison would be(i am showing one row at a time)
',1,2,3,4,' like '%,1,%' which will return true

JazzHarmonicat said...

I'm just now coming back to Oracle after working with MS SQL Server for a couple of years. I don't know if Oracle can do this, but in SQL Server, one way is to:
1. In C#, format the array or list as an XML "table".
2. Pass the entire XML string as VARCHAR2 to the stored proc.
3. Inside the stored proc, parse the XML into a local table variable (or a TEMP table could be used, which if shared could have a GUID callerid field to differentiate).
4. Format the SQL as
WHERE a. IN (SELECT * FROM )

Might run faster if using a global temp table.

JazzHarmonicat said...

Also in SQL Server, there is a Split( ) function that can be used to load a temp table or local table variable from a comma-delimited string (which works only if no commas in the values included in the list). Not sure if anything like this exists in Oracle, but a Split( ) function could easily be written.

Anonymous said...

This is easy in Sql. Place your array in a datatable. Go to sql and create a user defined data table type. Now pass your data table to the stored procedure and you can select from it as you would a normal table. Why on earth does oracle not have this functionality yet?????

Anonymous said...

I am new to all this and I am having trouble implementing this code example. I don't know what to put in the line:

da.Fill(myDataSet);


What is myDataSet?

I can get into the database and call my procedure which needs 4 inputs, but it does not get called with any parameters.

Unknown said...

That all works fine when the array has items, but I get
System.InvalidOperationException: OracleParameter.Value is invalid
when the array is empty. And empty array is valid input for my procedure. Do you know some way to handle this?

Unknown said...

@Martin,
In your case you are either expecting everything back from from the call or no data returned back from the call. In either case your solution is fairly straight forward if handled on the .Net side.

In the first case, call a different procedure in Oracle that does NOT require the variable (e.g. get_all_**** instead of get_****).

In the second case don't call Oracle at all, just return an empty initialized set.

Kamran said...

What if I want to pass array of files (byte[]) to stored procedure?

Please see my post and please tell me if there exists any solution for doing it.

http://stackoverflow.com/questions/24360736/inserting-multiple-files-in-pl-sql-by-calling-stored-procedure-from-c-sharp

Anonymous said...

It'd help to mention that PL/SQL objects/types cannot be used in select statements since select statement only allow SQL objects/types.

ryia said...

It is a new tip to the conversion This blog is really helpful and useful..Oracle Training in Chennai

Unknown said...

Very nice blogs!!! i have to learning for lot of information for this sites...

android Training in Chennai
Oracle Training in Chennai
ios Training in Chennai
phonegap Training in Chennai
Best Oracle Training In Chennai

Unknown said...

Really awesome blog. Your blog is really useful for me. Thanks for sharing this informative blog. Keep update your blog.
Hadoop Training In Chennai

Unknown said...

Women should never go without earrings. Passing on them is an opportunity missed. See the link below for more info.

#passing
www.ufgop.org

Md. Badsha Alamgir said...

really very helpful bolog. but the cursor type should be declare into package

Rosalio said...

Excellent Post!
I spend two day looking for some help like this.

You make my week!!

Thank you for your post

Unknown said...


Pretty article! I found some useful information in your blog, it was awesome to read, thanks for sharing this great content to my vision, keep sharing..
Android App Development Company

Unknown said...

You have provided an nice article, Thank you very much for this one. And i hope this will be useful for many people.. and i am waiting for your next post keep on updating these kinds of knowledgeable things...
iOS App Development Company

louis philip said...

You have provided an nice article, Thank you very much for this one. And i hope this will be useful for many people.. and i am waiting for your next post keep on updating these kinds of knowledgeable things...
Fitness SMS
Fitness Text
Salon SMS
Salon Text
Investor Relation SMS
Investor Relation Text
Mobile Marketing Services
mobile marketing companies
Sms API

Jeanne said...

great and nice blog thanks sharing..I just want to say that all the information you have given here is awesome...Thank you very much for this one.
web design Company
web development Company
web design Company in chennai
web development Company in chennai
web design Company in India
web development Company in India

aravindsai said...


Wonderful post. I am learning so many things from your blog.keep posting.
Abinitio Online Training
Hadoop Online Training
Cognos Online Training

Mani said...


It was so good to read and useful to improve my knowledge as updated one.Thanks to Sharing.
ETL Testing Online Training
Hadoop online Training
Informatica Online Training

Unknown said...


A very interesting case study


Sap MM Training In Chennai | Mainframe Training In Chennai | Hadoop Training In Chennai

rmouniak said...

It 's an amazing article and useful for developers
Oracle SOA Online Training

Unknown said...

Yes it is useful to know about the arrays to the required to Oracle. Also learn about the latest technologies such as Cloud Computing, With some quick links below,

best aws certification training in Chennai | best aws certification training in India | best aws certification training in Velachery | best aws certification training in OMR

Revathy A said...

The post is written in very a good manner and it entails many useful information for me. I am happy to find your distinguished way of writing the post. Now you make it easy for me to understand and implement the concept.
angularjs Training in marathahalli

angularjs interview questions and answers

angularjs Training in bangalore

angularjs Training in bangalore

angularjs Training in chennai

automation anywhere online Training

afiah b said...

Nice tutorial. Thanks for sharing the valuable information. it’s really helpful. Who want to learn this blog most helpful. Keep sharing on updated tutorials…
Java interview questions and answers

Java training in Chennai | Java training institute in Chennai | Java course in Chennai

Java training in Bangalore | Java training institute in Bangalore | Java course in Bangalore

Java interview questions and answers

gowsalya said...

Thank you for this post. Thats all I are able to say. You most absolutely have built this blog website into something speciel. You clearly know what you are working on, youve insured so many corners.thanks
python training Course in chennai
python training in Bangalore
Python training institute in bangalore

mathimathi said...

Wow, what great information. I am sure the info on your blog will help others, as I am trying to do as well.
Oracle apps training |
Oracle Training in Chennai |
Oracle dba training in chennai

mathimathi said...

This is such a neat idea!
Software Testing Training |
Software Training |
Software Testing Training in Chennai



kevin antony said...

This is most informative and also this post most user friendly and super navigation to all posts... Thank you so much for giving this information to me.

rpa training in chennai
rpa training in bangalore
rpa course in bangalore
best rpa training in bangalore
rpa online training

jeyanthi said...

This is most informative and also this post most user friendly and super navigation to all posts... Thank you so much for giving this information to me.. 
Data Science Course in Indira nagar
Data Science Course in btm layout
Python course in Kalyan nagar
Data Science course in Indira nagar
Data Science Course in Marathahalli
Data Science Course in BTM Layout

gowsalya said...

Nice tutorial. Thanks for sharing the valuable information. it’s really helpful. Who want to learn this blog most helpful. Keep sharing on updated tutorials…
Best Devops Training in pune
excel advanced excel training in bangalore
Devops Training in Chennai

Unknown said...

Your story is truly inspirational and I have learned a lot from your blog. Much appreciated.

python training in chennai
python training in chennai
python training in bangalore

sakthi said...

Inspiring writings and I greatly admired what you have to say , I hope you continue to provide new ideas for us all and greetings success always for you..Keep update more information.

rpa training in chennai
rpa training in bangalore
rpa course in bangalore
best rpa training in bangalore
rpa online training

gowsalya said...

The knowledge of technology you have been sharing thorough this post is very much helpful to develop new idea. here by i also want to share this.
excel advanced excel training in bangalore
Devops Training in Chennai

Unknown said...

I am really happy with your blog because your article is very unique and powerful for new reader.
Click here:
selenium training in chennai | selenium course in chennai
selenium training in bangalore | selenium course in bangalore
selenium training in Pune | selenium course in pune | selenium class in pune
selenium training in Pune | selenium course in pune | selenium class in pune
selenium online training | selenium training online | online training on selenium

shalinipriya said...

Your good knowledge and kindness in playing with all the pieces were very useful. I don’t know what I would have done if I had not encountered such a step like this.
Data Science Training in Chennai | Best Data science Training in Chennai
Data Science training in anna nagar | Data science training in Chennai
Data Science training in chennai | Best Data Science training in chennai
Data science training in Bangalore | Data Science training institute in Bangalore
Data Science training in marathahalli | Data Science training in Bangalore
Data Science interview questions and answers


<a href="http://ww

Unknown said...

your topic is inspirational that's the useful one.

nebosh course in chennai
safety course in chennai

swashthik said...

Thanks for posting useful information.You have provided an nice article, Thank you very much for this one. And i hope this will be useful for many people.. and i am waiting for your next post keep on updating these kinds of knowledgeable things...Really it was an awesome article...very interesting to read..please sharing like this information......
samsung service centres in chennai
samsung mobile service center in velachery
samsung mobile service center in porur
samsung mobile service center in vadapalani

anusha said...



Python Training in ChennaiLearn Python Training in Chennai from industry experts and become a python certified professional.BITA is the Best Python Training Institute in Chennai which is located in ramapuram. Call for more details.

IT Tutorials said...

Really useful information. Thank you so much for sharing.It will help everyone.Keep Post. RPA training in chennai | RPA training in Chennai with placement | UiPath training in Chennai | UiPath certification in Chennai with cost

Chiến SEOCAM said...

ok ok ok ok

Phối chó bull pháp

Phối giống chó Corgi

Phối chó Pug

Phối giống cho Pug

Chiến SEOCAM said...

Chúc bạn một ngày tốt lành. Cảm ơn bạn đã chia sẻ bài viết thú vị như thế!

lều xông hơi mini

mua lều xông hơi ở đâu

lều xông hơi gia đình

bán lều xông hơi

xông hơi hồng ngoại

IT Tutorials said...


Get the most advanced RPA Course by RPA Professional expert. Just attend a FREE Demo session about how the RPA Tools get work.
For further details call us @ 9884412301 | 9600112302
RPA training in chennai | UiPath training in chennai

Diya shree said...

Hey, it's really nice information to share here. Thanks for your blog, keep posting like this regularly. Thank you!!!

PMP Training in Chennai | Best PMP Training in Chennai |
Project Management Requirements | PMP Certification Training Courses and Books |
PMP Certification Courses in Velachery & OMR | PMP Certification training in chennai | Project Manager Interview Questions & Answer

Chiến SEOCAM said...

May mắn và hạnh phúc luôn đồng hành bên bạn! Cảm ơn vì bài viết

GIẢO CỔ LAM GIẢM BÉO

MUA GIẢO CỔ LAM GIẢM BÉO TỐT Ở ĐÂU?

NHỮNG ĐIỀU CHƯA BIẾT VỀ GIẢO CỔ LAM 9 LÁ

Giảo Cổ Lam 5 lá khô hút chân không (500gr)

Chiến SEOCAM said...

May mắn và hạnh phúc luôn đồng hành bên bạn! Cảm ơn vì bài viết

Trị dứt điểm bệnh viêm xoang bằng máy xông hương tinh dầu cao cấp

Công ty phân phối máy khuếch tán tinh dầu Hà Nội uy tín chất lượng

Máy khuếch tán tinh dầu Chery A07 cải tạo không khí thân thiện môi trường

Công dụng của máy khuếch tán tinh dầu- bạn có thể tham khảo

Chiến SEOCAM said...

చాలా ప్రత్యేకమైన వ్యాసం. భాగస్వామ్యం చేసినందుకు ధన్యవాదాలు

Dịch vụ phối giống chó Alaska tại Hà Nội

Dịch vụ phối giống chó Pug tại Hà Nội

Chuyên dịch vụ phối giống chó Corgi tại Hà Nội

Quy trình phối giống chó Bull Pháp

Chiến SEOCAM said...

Bài viết rất thú vị. Cảm ơn bạn đã chia sẻ. Cuối tuần vui vẻ nhá

TƯ VẤN NÊN CHỌN LỀU XÔNG HƠI LOẠI NÀO TỐT

HƯỚNG DẪN SỬ DỤNG LỀU XÔNG HƠI AN TOÀN HIỆU QUẢ

MỘT SỐ ƯU ĐIỂM NỔI BẬT CỦA CHĂN ĐIỆN KYUNG DONG

TÍNH NĂNG NỔI BẬT CỦA LỀU XÔNG HƠI HỒNG NGOẠI

NHỮNG LỢI ÍCH SỬ DỤNG LỀU XÔNG HƠI

Chiến SEOCAM said...

Bài viết rất thú vị

Công dụng của giảo cổ lam 5 lá

Giá bán hạt methi bao nhiêu tiền?

Hạt methi mua ở đâu Thanh Xuân tốt?

Dùng hạt methi trị tiểu đường tuyp 2

Công dụng giảm béo của giảo cổ lam

lajwantidevi said...

This is a nice Site to watch out for and we provided information on
vidmate make sure you can check it out and keep on visiting our Site.

kajal singh rajput said...

Download and install Vidmate App which is the best HD video downloader software available for Android. Get free latest HD movies, songs, and your favorite TV shows

Maketting SEO said...

Es fácil ganarse una confianza que( tam san be tong sieu nhe ) es fácil de destruir, es ( Sàn panel Đức Lâm ) importante no engañar a los grandes( tấm bê tông siêu nhẹ ) o pequeños, pero el engaño ha sido el problema

Diya shree said...

Good job and thanks for sharing such a good blog You’re doing a great job. Keep it up !!

Python Training in Chennai | Best Python Training in Chennai | Python with DataScience Training in Chennai | Python Training Courses and fees details at Credo Systemz | Python Training Courses in Velachery & OMR | Python Combo offer | Top Training Institutes in Chennai for Python Courses

Diya shree said...

Hey, it's really nice information to share here. Thanks for your blog, keep posting like this regularly. Thank you!!!

PMP Training in Chennai | Best PMP Training in Chennai |
Project Management Requirements | PMP Certification Training Courses and Books |
PMP Certification Courses in Velachery & OMR | PMP Certification training in chennai | Project Manager Interview Questions & Answer

kajal singh rajput said...

Download and install Vidmate App which is the best HD video downloader software available for Android. Get free latest HD movies, songs, and your favorite TV shows.

Benish said...

thank you for sharing your information..
AngularJS interview questions and answers/angularjs interview questions/angularjs 6 interview questions and answers/mindtree angular 2 interview questions/jquery angularjs interview questions/angular interview questions/angularjs 6 interview questions

Venkatesh CS said...

Excellent Blog. Thank you so much for sharing.
hadoop interview questions
Hadoop interview questions for experienced
Hadoop interview questions for freshers
top 100 hadoop interview questions
frequently asked hadoop interview questions
hadoop interview questions and answers for freshers
hadoop interview questions and answers pdf
hadoop interview questions and answers
hadoop interview questions and answers for experienced
hadoop interview questions and answers for testers
hadoop interview questions and answers pdf download
hadoop interview questions pdf

wemake said...

<a href="https://vidmate.vin/

techsupport said...

get free apps on 9apps

IT Tutorials said...



Get the most advanced Python Course by Professional expert. Just attend a FREE Demo session.
For further details call us @ 9884412301 | 9600112302
Python training in chennai | Python training in velachery

pat said...

vidmate app
9 apps

Venkatesh CS said...

Excellent Blog. Thank you so much for sharing.
best react js training in chennai
react js training in Chennai
react js workshop in Chennai
react js courses in Chennai
react js training institute in Chennai
reactjs training Chennai
react js online training
react js online training india
react js course content
react js training courses
react js course syllabus
react js training
react js certification in chennai
best react js training

shivam said...

Flying Shift - Packers & Movers in Bhopal

Unknown said...

Really nice post. Thank you for sharing amazing information.
Python training in Chennai/Python training in OMR/Python training in Velachery/Python certification training in Chennai/Python training fees in Chennai/Python training with placement in Chennai/Python training in Chennai with Placement/Python course in Chennai/Python Certification course in Chennai/Python online training in Chennai/Python training in Chennai Quora/Best Python Training in Chennai/Best Python training in OMR/Best Python training in Velachery/Best Python course in Chennai

Venkatesh CS said...

Thanks for sharing valuable information.
Digital Marketing training Course in chennai
digital marketing training institute in chennai
digital marketing training in Chennai
digital marketing course in Chennai
digital marketing course training in omr
digital marketing certification in omr
digital marketing course training in velachery
digital marketing training center in chennai
digital marketing courses with placement in chennai
digital marketing certification in chennai
digital marketing institute in Chennai
digital marketing certification course in Chennai
digital marketing course training in Chennai
Digital Marketing course in Chennai with placement
digital marketing courses in chennai

lajwantidevi said...

call adultxxx
call girl
xadult

gokul said...

Thanks for this informative blog
Top 5 Data science training in chennai
Data science training in chennai
Data science training in velachery
Data science training in OMR
Best Data science training in chennai
Data science training course content
Data science certification in chennai
Data science courses in chennai
Data science training institute in chennai
Data science online course
Data science with python training in chennai
Data science with R training in chennai

Noithatbaoankids said...

Giường ngủ trẻ em

giường tầng

Phòng ngủ trẻ em

Rajesh said...

Rpa Training in Chennai
Rpa Course in Chennai
Rpa training institute in Chennai
Best Rpa Course in Chennai
uipath Training in Chennai
Blue prism training in Chennai

Data Science Training In Chennai
Data Science Course In Chennai
Data Science Training institute In Chennai
Best Data Science Training In Chennai

Rajesh said...

Nice infromation
Selenium Training In Chennai
Selenium course in chennai
Selenium Training
Selenium Training institute In Chennai
Best Selenium Training in chennai
Selenium Training In Chennai

Rajesh said...

Python Training In Chennai
Python course In Chennai
Protractor Training in Chennai
jmeter training in chennai
Loadrunner training in chennai

Customer relationship management said...

Your articles really impressed for me,because of all information so nice.robotic process automation (rpa) training in bangalore

Customer relationship management said...

Linking is very useful thing.you have really helped lots of people who visit blog and provide them use full information.Automation Anywhere Training in Bangalore

Customer relationship management said...

Being new to the blogging world I feel like there is still so much to learn. Your tips helped to clarify a few things for me as well as giving.uipath training in bangalore

Customer relationship management said...

Really it was an awesome article,very interesting to read.You have provided an nice article,Thanks for sharing.blue prism training in bangalore

Customer relationship management said...

This is really an awesome post, thanks for it. Keep adding more information to this.openspan training in bangalore

watson said...

It’s really Nice and Meaningful. It’s really cool Blog. You have really helped lots of people who visit Blog and provide them Useful Information. Thanks for Sharing.dot net training in bangalore

watson said...

This is most informative and also this post most user friendly and super navigation to all posts. Thank you so much for giving this information to me.hadoop training institutes in bangalore

Bangalore Training Academy said...

Really very happy to say, your post is very interesting to read. I never stop myself to say something about it.You’re doing a great job. Keep it up...

Become an Expert In DBA Training in Bangalore! The most trusted and trending Programming Language. Learn from experienced Trainers and get the knowledge to crack a coding interview, @Bangalore Training Academy Located in BTM Layout.

Real Time Experts said...

Very interesting, good job and thanks for sharing such a good blog.

Real Time Experts Training Center is one of the Best SAP PP Training Institutes in Bangalore with 100% placement support. SAP Production Planning training in Bangalore provided by sap pp certified experts and real-time working professionals with handful years of experience in real time sap pp projects.

eTechno Soft Solutions said...

Really i appreciate the effort you made to share the knowledge. The topic here i found was really effective...

Looking for Salesforce CRM Training in Bangalore, learn from eTechno Soft Solutions Salesforce CRM Training on online training and classroom training. Join today!

Softgen Infotech said...

Really i appreciate the effort you made to share the knowledge. The topic here i found was really effective...

Learn SAP Training from the Industry Experts we bridge the gap between the need of the industry. Softgen Infotech provide the Best SAP Training with 100% Placement Assistance. Book a Free Demo Today.

eTechno Soft Solutions said...

Post is very useful. Thank you, this useful information.

Get SAP ABAP Training in Bangalore from Real Time Industry Experts with 100% Placement Assistance in MNC Companies. Book your Free Demo with eTechno Soft Solutions.

vijay said...

I liked your blog.Thanks for your interest in sharing the information.keep updating.
aws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
python Training in Bangalore
aws Training in Bangalore

Rajesh said...

Nice infromation
Selenium Training In Chennai
Selenium course in chennai
Selenium Training
Selenium Training institute In Chennai
Best Selenium Training in chennai
Selenium Training In Chennai

Rajesh said...

Rpa Training in Chennai
Rpa Course in Chennai
Rpa training institute in Chennai
Best Rpa Course in Chennai
uipath Training in Chennai
Blue prism training in Chennai

Rajesh said...

Data Science Training In Chennai
Data Science Course In Chennai
Data Science Training institute In Chennai
Best Data Science Training In Chennai


Python Training In Chennai
Python course In Chennai
Protractor Training in Chennai
jmeter training in chennai
Loadrunner training in chennai

vijay said...

Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge as updated one, keep blogging.
aws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
python Training in Bangalore
aws Training in Bangalore

kani said...

nice..
inplant training in chennai
inplant training in chennai
inplant training in chennai for it
hosting
india hosting
india web hosting
iran web hosting
technology 11 great image sites like imgur hosting
final year project dotnet server hacking what is web hosting
macao web hosting

sugan said...

very nice post thanks blog.........
r programming training in chennai
internship in bangalore for ece students
inplant training for mechanical engineering students
summer internships in hyderabad for cse students 2019
final year project ideas for information technology
bba internship certificate
internship in bangalore for ece
internship for cse students in hyderabad
summer training for ece students after second year
robotics courses in chennai


kani said...

nice...
slovakia web hosting
timor lestes hosting
egypt hosting
egypt web hosting
ghana hosting
iceland hosting
italy shared web hosting
jamaica web hosting
kenya hosting
kuwait web hosting

Customer relationship management said...

Its really helpful for the users of this site. I am also searching about these type of sites now a days. So your site really helps me for searching the new and great stuff.

aws training in bangalore

aws courses in bangalore

aws classes in bangalore

aws training institute in bangalore

aws course syllabus

best aws training

aws training centers

Customer relationship management said...

This is the exact information I am been searching for, Thanks for sharing the required infos with the clear update and required points. To appreciate this I like to share some useful information.

mulesoft training in bangalore

mulesoft courses in bangalore

mulesoft classes in bangalore

mulesoft training institute in bangalore

mulesoft course syllabus

best mulesoft training

mulesoft training centers

Customer relationship management said...

It is very good and useful for students and developer.Learned a lot of new things from your post Good creation,thanks for give a good information.

salesforce developer training in bangalore

salesforce developer courses in bangalore

salesforce developer classes in bangalore

salesforce developer training institute in bangalore

salesforce developer course syllabus

best salesforce developer training

salesforce developer training centers

Customer relationship management said...

I have to voice my passion for your kindness giving support to those people that should have guidance on this important matter.

salesforce admin training in bangalore

salesforce admin courses in bangalore

salesforce admin classes in bangalore

salesforce admin training institute in bangalore

salesforce admin course syllabus

best salesforce admin training

salesforce admin training centers

Customer relationship management said...

Excellent post for the people who really need information for this technology.

servicenow training in bangalore

servicenow courses in bangalore

servicenow classes in bangalore

servicenow training institute in bangalore

servicenow course syllabus

servicenow course syllabus

servicenow training centers

Customer relationship management said...

Very useful and information content has been shared out here, Thanks for sharing it.

cloud computing training in bangalore

cloud computing courses in bangalore

cloud computing classes in bangalore

cloud computing training institute in bangalore

cloud computing course syllabus

best cloud computing training

cloud computing training centers

Customer relationship management said...

Awesome post with lots of data and I have bookmarked this page for my reference. Share more ideas frequently.

dell boomi training in bangalore

dell boomi courses in bangalore

dell boomi classes in bangalore

dell boomi training institute in bangalore

dell boomi course syllabus

best dell boomi training

dell boomi training centers

Customer relationship management said...

Its really helpful for the users of this site. I am also searching about these type of sites now a days. So your site really helps me for searching the new and great stuff.

aws training in bangalore

mulesoft training in bangalore

salesforce developer training in bangalore

salesforce admin training in bangalore

servicenow training in bangalore

cloud computing training in bangalore

dell boomi training in bangalore

watson said...

Great post!I am actually getting ready to across this information,i am very happy to this commands.Also great blog here with all of the valuable information you have.Well done,its a great knowledge.

sap abap training in bangalore

sap abap courses in bangalore

sap abap classes in bangalore

sap abap course syllabus

best sap abap training

sap abap training center

sap abap training institute in bangalore

watson said...


It is amazing and wonderful to visit your site.Thanks for sharing this information,this is useful

sap hana courses in bangalore

sap hana classes in bangalore

sap hana training institute in bangalore

sap hana course syllabus

best sap hana training

sap hana training centers

best sap hana training

watson said...

Great post!I am actually getting ready to across this information,i am very happy to this commands.Also great blog here with all of the valuable information you have.Well done,its a great knowledge.

sap hr courses in bangalore

sap hr classes in bangalore

sap hr training institute in bangalore

sap hr course syllabus

best sap hr training

sap hr training centers

sap hr training in bangalore

watson said...

Thank you for your post. This is excellent information. It is amazing and wonderful to visit your site.

sap mm training in bangalore

sap mm courses in bangalore

sap mm classes in bangalore

sap mm training institute in bangalore

sap mm course syllabus

best sap mm training

sap mm training centers

python training in vijayawada said...

We as a team of real-time industrial experience with a lot of knowledge in developing applications in python programming (7+ years) will ensure that we will deliver our best in python training in vijayawada. , and we believe that no one matches us in this context.

Unknown said...

Thanks loads for writting this kind of fantastic article.
It's simply has plenty of insights and valueable informtion.

click here formore info.

Durai Moorthy said...

Very nice post. thanks for sharing with us.

aws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
python Training in Bangalore
aws Training in Bangalore

hami said...

Very correct statistics furnished, Thanks a lot for sharing such beneficial data.
katmovies

meritstep Technology said...

Thanks for Sharing This Article.It is very so much valuable content. I hope these Commenting lists will help to my website
best servicenow online training
servicenow online training
top servicenow online training

GlobalEmployees said...

Read my post here
Java programmer
Java programmer
Java programmer

Durai Moorthy said...

I am really happy with your blog because your article is very unique and powerful for new reader.
aws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
python Training in Bangalore
aws Training in Bangalore

lajwantidevi said...

vidmate



Rajesh said...

Nice infromation
Selenium Training In Chennai
Selenium course in chennai
Selenium Training
Selenium Training institute In Chennai
Best Selenium Training in chennai
Selenium Training In Chennai

Rajesh said...

Rpa Training in Chennai
Rpa Course in Chennai
Rpa training institute in Chennai
Best Rpa Course in Chennai
uipath Training in Chennai
Blue prism training in Chennai

Rajesh said...

Data Science Training In Chennai
Data Science Course In Chennai
Data Science Training institute In Chennai
Best Data Science Training In Chennai


Python Training In Chennai
Python course In Chennai
Protractor Training in Chennai
jmeter training in chennai
Loadrunner training in chennai

Rajesh Anbu said...

Really nice post. Thank you for sharing amazing information.
aws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
python Training in Bangalore
aws Training in Bangalore

Rajesh Anbu said...

Thank you for sharing information. Wonderful blog & good post.
aws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
python Training in Bangalore
aws Training in Bangalore

Bồn ngâm massage chân Doca said...

Bài viết quá

case máy tính cũ

vga cũ hà nội

mua bán máy tính cũ hà nội

Lắp đặt phòng net trọn gói

Gowtham said...

Lovely blog...! It is one of the best posts for this topic and I really appreciate your great efforts. Keep continuing...
Placement Training in Chennai
Best placement Training institutes in Chennai
Power BI Training in Chennai
Graphic Design Courses in Chennai
Pega Training in Chennai
Oracle DBA Training in Chennai
Oracle Training in Chennai
Soft Skills Training in Chennai
JMeter Training in Chennai
Tableau Training in Chennai
Appium Training in Chennai
Placement Training in Anna Nagar

Tutoring Centre said...

Thank you for your post. This is excellent information.

Scholarship Preparation Classes

Shruti said...

An impressive share! I've just forwarded this onto a coworker who has been doing a little homework on this. And he actually ordered me lunch because I found it for him... lol. So allow me to reword this.... Thanks for the meal!! But yeah, thanks for spending time to discuss this issue here on your web page.


Selenium Courses in Marathahalli

selenium institutes in Marathahalli

selenium training in Bangalore

Selenium Courses in Bangalore

best selenium training institute in Bangalore

selenium training institute in Bangalore

Máy khuếch tán tinh dầu said...

ok mà

https://expo.io/@maykhuechtantinhdau

https://www.dohtheme.com/community/members/maykhuechtantinhdau.7575/

http://inktalks.com/people/maykhuechtantinhdau

https://cic.com.vn/forums/member.php?action=profile&uid=94275

https://www.pinterest.com/chien0208924/

Đồ gia dụng said...


màn hình cũ hà nội
máy tính bàn cũ

Shivani said...

I needed to thank you for this excellent read!! I certainly loved every little bit of it. I have got you book-marked to look at new things you post…

Best Advanced Java Training In Bangalore Marathahalli

Advanced Java Courses In Bangalore Marathahalli

Advanced Java Training in Bangalore Marathahalli

Advanced Java Training Center In Bangalore

Advanced Java Institute In Marathahalli

gadgetsdora said...

Great post! We will be linking to this get great article on our website. Keep up the great writing.

Bồn ngâm massage chân Doca said...

ok hi

https://forums.pokemmo.eu/index.php?/profile/131787-cualuoihm/
https://doremir.com/forums/profile/cualuoihm
https://www.wincert.net/forum/profile/100889-cualuoihm/
https://www.goodreads.com/user/show/104133368-cualuoihm

Máy mátxa chân said...

haizzz

Bồn ngâm chân

máy ngâm chân

bồn massage chân

may mat xa chan

Jack sparrow said...


Well thats a nice article.The information You providied is good . Here is i want to share about dell boomi training videos and Mulesoft Training videos . Expecting more articles from you .

Inoventic Creative Agency said...

Hello Admin!

Thanks for the post. It was very interesting and meaningful. I really appreciate it! Keep updating stuffs like this. If you are looking for the Advertising Agency in Chennai | Printing in Chennai , Visit Inoventic Creative Agency Today..

info said...

A fascinating discussion is definitely worth comment. I do think that you need to write more on this subject matter, it might not be a taboo subject but generally people do not speak about these issues. latest To the next! Kind regards!!

Situs Judi Online Terpercaya said...

NAGAQQ | AGEN BANDARQ | BANDARQ ONLINE | ADUQ ONLINE | DOMINOQQ TERBAIK

Yang Merupakan Agen Bandarq, Domino 99, Dan Bandar Poker Online Terpercaya di asia hadir untuk anda semua dengan permainan permainan menarik dan bonus menarik untuk anda semua

Bonus yang diberikan NagaQQ :
* Bonus rollingan 0.5%,setiap senin di bagikannya
* Bonus Refferal 10% + 10%,seumur hidup
* Bonus Jackpot, yang dapat anda dapatkan dengan mudah
* Minimal Depo 15.000
* Minimal WD 20.000

Memegang Gelar atau title sebagai QQ Online Terbaik di masanya

Games Yang di Hadirkan NagaQQ :
* Poker Online
* BandarQ
* Domino99
* Bandar Poker
* Bandar66
* Sakong
* Capsa Susun
* AduQ
* Perang Bacarrat (New Game)

Tersedia Deposit Via pulsa :
Telkomsel & XL

Info Lebih lanjut Kunjungi :
Website : NAGAQQ
Facebook : NagaQQ Official
Kontakk : Info NagaQQ
linktree : Agen Judi Online
WHATSAPP : +855977509035
Line : Cs_nagaQQ
TELEGRAM : +855967014811


BACA JUGA BLOGSPORT KAMI YANG LAIN:
agen bandarq terbaik
Winner NagaQQ
Daftar NagaQQ
Agen Poker Online

dhishageetha said...

This Blog is really informative!! keep update more about this…
Aviation Courses in Bangalore
Air Hostess Training in Bangalore
Airport Management Courses in Bangalore
Ground Staff Training in Bangalore
Aviation Institute in Bangalore
Air Hostess Academy Bangalore
Airport Management in Bangalore

kimi jhaveri said...

Hi, your article was of great help. I loved the way you shared the information, thanks.
Amazing article, I highly appreciate your efforts, it was highly helpful. Thank you CEH Training ,CEH Certification, CEH Online Course, Ethicalhacking

kimi jhaveri said...

Hi this is the nice blog, thanks for sharing us
Get Azure, azure training,azure certification,microsoft azure training,azure course,azure online training

Tracking2u said...

Thanks for sharing GPS Vehicle tracking system

SD electronic said...

amazing blog!!!!

Thanks

washing machine service centre in Coimbatore

sachin nagar said...

Hi, This is a great article. Loved your efforts on it buddy. Thanks for sharing this with us.
Get cissp
it training courses.
CISSP training ,cissp exam cost, CISSP certification. .Get VMware, vmware training, vmware course, vmware online training., vmware interview questions and answers, vmware Certification, AWS, aws training, aws course, aws certification training, aws online training
Get PMP pmp certification, pmp training, pmp certification in gurgaon,pmp certification cost, pmp training certification

sachin nagar said...

Hi, This is your awesome article , I appreciate your effort, thanks for sharing us.
cism training
cism certification

cisa training,
cisa certification
cisa exam

sachin nagar said...

Hi, This is your awesome article , I appreciate your effort, thanks for sharing us.
cism training
cism certification

cisa training,
cisa certification
cisa exam

munroe island said...

Nice post.

kerala honeymoon resorts

Tutoring Centre said...

Nice post.

Selective School Preparation Class

Graysonau said...

great post. thanks for sharing.

Roller blinds

monkeypen said...

Super post.keep it up.

personalised childrens story books

Aruna said...

Thanks for the informative article About Data Science.This is one of the best resources I have found in quite some time. Nicely written and great info. I really cannot thank you enough for sharing.
Java training in chennai | Java training in annanagar | Java training in omr | Java training in porur | Java training in tambaram | Java training in velachery

Venkatesh CS said...

Excellent Blog. Thank you so much for sharing.
salesforce training in chennai
salesforce training in omr
salesforce training in velachery
salesforce training and placement in chennai
salesforce course fee in chennai
salesforce course in chennai
salesforce certification in chennai
salesforce training institutes in chennai
salesforce training center in chennai
salesforce course in omr
salesforce course in velachery
best salesforce training institute in chennai
best salesforce training in chennai

nizam said...

one of the good informative one


BEST ANGULAR JS TRAINING IN CHENNAI WITH PLACEMENT

https://www.acte.in/angular-js-training-in-chennai
https://www.acte.in/angular-js-training-in-annanagar
https://www.acte.in/angular-js-training-in-omr
https://www.acte.in/angular-js-training-in-porur
https://www.acte.in/angular-js-training-in-tambaram
https://www.acte.in/angular-js-training-in-velachery

Anonymous said...

Informative post, i loved reading it. Read my posts here
http://unsurpassedesports.esportsify.com/forums/scrims-ps4/273/take-canadian-writers-help-for-timely-assignment-submission
https://www.pearltrees.com/t/technical-experts/id31418472#item306375260
https://www.pearltrees.com/t/technical-experts/id31418472#item306375169

merlin said...

Great explanation to given on this post and i read our full content was really amazing.Thanks for sharing.
Selenium Training in chennai | Selenium Training in anna nagar | Selenium Training in omr | Selenium Training in porur | Selenium Training in tambaram | Selenium Training in velachery

latchu kannan said...

Great article! with an nice content. keep doing on more.

AngularJS training in chennai | AngularJS training in anna nagar | AngularJS training in omr | AngularJS training in porur | AngularJS training in tambaram | AngularJS training in velachery



pratheep said...

Thank you for taking the time and sharing this information with us. It was indeed very helpful and insightful while being straight forward and to the point.

Robotic Process Automation (RPA) Training in Chennai | Robotic Process Automation (RPA) Training in anna nagar | Robotic Process Automation (RPA) Training in omr | Robotic Process Automation (RPA) Training in porur | Robotic Process Automation (RPA) Training in tambaram | Robotic Process Automation (RPA) Training in velachery

Anonymous said...

Such an incredible blog post. Thanks a lot.
Wedding planner in Goa
Wedding planner in Delhi
Wedding planner in Mumbai
Wedding planner in Gurgaon

harshni said...

Hi, Great.. Tutorial is just awesome..It is really helpful for a newbie like me.. I am a regular follower of your blog. Really very informative post you shared here. Kindly keep blogging.
Artificial Intelligence Training in Chennai | Certification | ai training in chennai | Artificial Intelligence Course in Bangalore | Certification | ai training in bangalore | Artificial Intelligence Training in Hyderabad | Certification | ai training in hyderabad | Artificial Intelligence Online Training Course | Certification | ai Online Training | Blue Prism Training in Chennai | Certification | Blue Prism Online Training Course

Cass Tuft said...

Forex Signals, MT4 and MT5 Indicators, Strategies, Expert Advisors, Forex News, Technical Analysis and Trade Updates in the FOREX IN WORLD

Forex Signals Forex Strategies Forex Indicators Forex News Forex World

Devi said...

Great post!! This can be one particular of the most useful blogs.. oracle training in chennai

svrtechnologies said...


That is nice article from you , this is informative stuff . Hope more articles from you . I also want to share some information about devops training in pune

Ontario Security Training said...

Shield Security Solutions Provides Ontario Security Training, Security Guard License or Security License in Ontario. Get Started Today

Ontario Security license said...

Shield Security Solutions Offers Security Guard License Training across the province of Ontario. Get Started Today!

Security Guard License | Security License | Ontario Security license | Security License Ontario | Ontario Security Guard License | Security Guard License Ontario