Inserting Multiple Rows into Database Table using JDBC Adapter - Efficiency
I need to insert multiple rows into a database table using the JDBC adapter (receiver).
I understand the traditional way of repeating the statement multiple times, each having its <access> element. However, I am just wondering whether this might be performance-inefficient, as it might insert records one by one.
Is there a way to ensure that the records are inserted into the table as a block, rather than record-by-record?
Hi Bhavesh/Kanwaljit,
If we have multiple ACCESS tags then what happens is that the connection to the database is made only once. But the data is inserted row by row.
Why i am saying this?
If we add the following in JDBC Adapter..logSQLStatement = true. Then incase of multiple inserts we can see that there are multiple
<i>Insert into tablename(EMP_NAME,EMP_ID) VALUES('J','1000')
Insert into tablename(EMP_NAME,EMP_ID) VALUES('J','2000')</i>
Doesnt this mean that rows are inserted one by one?
Correct me if i am wrong.
This does not mean that the transaction is not guaranted. Either all the rows will be inserted or rolled back.
Regards,
Sumit
Similar Messages
-
Inserting multiples rows into a table using function or procedure..
How do i insert multiples rows into a table using function or procedure?
Please provide me query..Use FORALL bulk insert statement...
eg:
procedure generate_test_data as
type cl_itab is table of integer index by pls_integer;
v_cl_itab cl_itab;
type cl_vtab is table of varchar2(25) index by pls_integer;
v_cl_vtab cl_vtab;
type cl_dtab is table of date index by pls_integer;
v_cl_dtab cl_dtab;
begin
for i in 1.. 100 loop
v_cl_itab(i):= dbms_random.value(1,1000);
v_cl_vtab (i):=dbms_random.string('a',20);
v_cl_dtab (i):=to_date(trunc(dbms_random.value(2453737, 2454101)),'j');
end loop;
forall i in v_cl_itab.first .. v_cl_itab.last
execute immediate 'insert into test_order values( :n, :str , :dt ) ' using v_cl_itab(i), v_cl_vtab (i), v_cl_dtab (i);
commit;
end; -
Inserting multiple rows into a table (using sequences)
Hi!
I want to insert multiple rows into a db table, but I don't know how.
I know how to insert 1 row using a sequence:
I put all the fields in the jsp form's page and in the submit page I put something like this:
<jbo:Row id="myRow" datasource="ds" action="Update" rowkeyparam="MyRowKey" >
<jbo:SetAttribute dataitem="*" />
</jbo:Row>
But how can I insert multiple rows like this:
Id Name
1 ana
2 monteiro
3 maria
Thanks!Hi Chris,
I think this should give you what you need: Working with a Multiple Select List Item
--Jennifer -
Inserting multiple rows into a table using a multiple-select list
I'm trying to figure out how to take the output of a multiple-select list (":" separated list of values) and use that to update a table by inserting multiple rows based on the values. Is there a straight-forward way to do that in APEX?
Thanks.
ChrisHi Chris,
I think this should give you what you need: Working with a Multiple Select List Item
--Jennifer -
Inserting multiple rows into database table
hi
I have a simple jsp/html page like this:
<h1>Enter Comments</h1>
<select name = "g1">
<option>10</option>
<option>20</option>
<option>30</option>
<option>40</option>
<option>50</option>
<option>60</option>
<option>70</option>
<option>80</option>
<option>90</option>
<option>100</option>
</select> <input name = "comment1" type = "text" size = "60"><p>
<select name = "g1">
<option>10</option>
<option>20</option>
<option>30</option>
<option>40</option>
<option>50</option>
<option>60</option>
<option>70</option>
<option>80</option>
<option>90</option>
<option>100</option>
</select> <input name = "comment1" type = "text" size = "60"><p>but when i say : String fruit=request.getParameter("g1");
String fruit=request.getParameter("comment1");
only one gets written into the table. How would I write them both into seperate rows of the table? e.g.
g1 comment1
g1 comment1
thank you all,change the name of the second select and second text element.
You're only getting one because they're named the same, so the second one is overwriting the values of the first.
HTH. -
Inserting Multiple Rows into a Table
I am having problems insert multiple rows. I am using Table1.Row1.instanceManger.addInstance(1).
I try adding another line using
Table1.Row2.Cell2.value.#text= "TEST"
and I get an error acessor is unknown. I assume this is an index issue. Can someone tell me if I am doing this wrong and discuss table indexes?The first thing I notice is that your variable, "num," isn't initialized in the FOR loop like I'm used to seeing.. The next thing I would try would be declaring my variables outside of the loop. Something like this maybe.
String query = null;
Statement stmt = null;
int rowsUpdated = 0;
for (int num = 0; num < 10; num++); {
query = "INSERT into apartment (apartmentID,blockID) VALUES ('"+num+"','"+aid+"')";
stmt = con.createStatement();
rowsUpdated += stmt.executeUpdate(query);
}Let me know how it goes.
-Aaron
http://www.WeKnowErrors.com/ A free Wiki for error codes and computer problems. -
Insert Multiple rows into the table from that table data
Hi All,
I have a requirement like to insert mulitple rows into the table from that table data only(I need to replicate the data).
In this table primary key is composite primary key with all foreign keys.primary key also including the Date foreign key.I need to change that date at the of insertion.
INSERT
INTO myschema.Fact_page_performance
time_sk ,
batch_id ,
delta_msec ,
delta_user_msec,
error_code_sk ,
content_errs ,
element_count ,
page_bytes ,
Available ,
date_sk
VALUES
(SELECT time_sk ,
batch_id ,
delta_msec ,
delta_user_msec,
error_code_sk ,
content_errs ,
element_count ,
page_bytes ,
Available
FROM myschema.FACT_PAGE_PERFORMANCE_BACKUP
WHERE date_sk=20090509,20090510
But it is giving the error like missing Expression.
Could anyone please help to me.
Thanks and Regards
Swetha.You can have either VALUES or SELECT not both
INSERT
INTO myschema.Fact_page_performance
time_sk ,
batch_id ,
delta_msec ,
delta_user_msec,
error_code_sk ,
content_errs ,
element_count ,
page_bytes ,
Available ,
date_sk
SELECT time_sk ,
batch_id ,
delta_msec ,
delta_user_msec,
error_code_sk ,
content_errs ,
element_count ,
page_bytes ,
Available
FROM myschema.FACT_PAGE_PERFORMANCE_BACKUP
WHERE date_sk=20090509,20090510; -
Inserting Multiple rows in Oracle DB using DB Adapter not working
Hi All,
I have a bpel process that reads actually calls the db adapter to insert(only) multiple rows in a table ..
This is a very simple process and worked fine on soa 10g
After migrating to 11.1.1.3 the invoke throws a strange error " db lock ..batch execution failed " or something.. the jca adapter rolls back causing bpel to throw a bpelx:rollback
I tried the same on 11.1.1.4 and got the same result ..
The process takes multiple orders from an entity and has xslt using for-each to write to multiple rows in the DB..
Any help is appreciated..
thanksThank you for your reply..
If the am1.invokeMethod("createUserLoc"); is not there in the while loop, it goes through the while loop and gives SOP values correctly.
But if I put this statement in while loop, it errors out in the first iteration itself. -
Inserting multiple rows into database using c#
Hi,
I have a web form with a customer id and a few checkboxes with different products (productid) and when a user checks the checkbox he must also enter a date for that product.
I need to basically do the following insert into Customer (customerid,productid, purchasedate) values (1,890,18/12/2003)
insert into Customer (customerid,productid, purchasedate) values (1,56,12/12/2004)
For each product checked I need to insert the details into the database with the same customerid.
The database table looks like this:
Customer Table
CustomerId int
ProductId int
PurchaseDate datetime
What is the correct way to do that? Should I change the database table?
ThanksThis has nothing to do with C#. Ask in the SQL forum for your database product for bulk insertion options.
Visual C++ MVP -
Get Multiple Rows into internal Table using Webdynpro Alv Display ..
Hi guys ,
I need to find out the logic for getting all the selected rows into the internal table.
When i display the ALV Output on webdypro screen .
USer Selects multiple rows for further processing ..
Ineed to get all the rows selected by user into an internal table .
Please let me know how to achive this ...
Thanks in advance for quick reply
Regards
Saurabh GoelHi,
You need to use the method GET_SELECTED of IF_WD_CONTEXT_NODE to get the rows selected. Also ccheck for the paramters of that method, this retruns the element set.
This meets your requirement.
Regards,
Lekha. -
Populating SAP Database table using JDBC adapter
Hi Folks,
I have a requirement to populate a SAP database table say ZTABLE using XI. The Model is the table has to be populated through a file which will be processed by SAP XI. Basically this is a File to JDBC scenario. The database used is ORACLE. Kindly provide me some idea to go ahead.I tried to place the MS access table in the shared folder of the Application server system but still it seems the table is not being populated.
did you check the log in your receiver channel? (/people/sameer.shadab/blog/2005/10/24/connecting-to-ms-access-using-receiver-jdbc-adapter-without-dsn)
The requirement is to update the tables directly as those are the custom tables.
i would still say that do not update SAP tables directly from XI/ PI.....this is not a standard architecture/ solution.... -
Inserting multiples rows into a table
We have a job schedule table and a job date table.
Job Schedule
Job_ID Frequency
1 1234567
2 12-456-
Job Date
Job_ID Date
1 01-JAN-07
1 02-JAN-07
We need to insert all DATES (not number of day in the week) into the Job Date table for a job according to the frequency. For example, for Job_ID 1 daily and for Job_ID 2 only Mondays, Tuesdays, Thursdays, Fridays, and Saturdays of the year.
How can we achieve this?This question smells like this one...
Inserting rows -
Inserting rows in a database table using JDBC
Hi,
I am trying to insert a row in a table using the follwing code:
String Query_String = "Insert into Table_Name (Field_1, Field_2, Field_3)" +
"Values (Value_1, Value_2, Value_3)";
stmt.executeUpdate (Query_String);
Field_1 is a Date field, Field_2 is a String, and Field_3 is an integer.
Any of the fields could be null. If the user does not enter a value for any
one of these fields what would be the values for
Value_1, Value_2, or Value3 in the Query_String?
Thanks.Hi,
I am trying to insert a row in a table using the
follwing code:
String Query_String = "Insert into Table_Name
(Field_1, Field_2, Field_3)" +
"Values (Value_1,
"Values (Value_1, Value_2, Value_3)";
stmt.executeUpdate (Query_String);
Field_1 is a Date field, Field_2 is a String, and
Field_3 is an integer.
Any of the fields could be null. If the user does not
enter a value for any
one of these fields what would be the values for
Value_1, Value_2, or Value3 in the Query_String?
Thanks.Keep in mind that each database server probably has their own way of storing date values. For now, I'm going to assume that you're going to be using MySQL.
// Initialize variables to null
String Value_1 = "";
String Value_2 = "";
String Value_3 = "";
try
// Get Date
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Value_1 = dateFormat.format(date);
// Get String value
Value_2 = "some string";
// Get Integer value
Value_3 = String.valueOf("2");
String query = INSERT INTO T_NAME VALUES('" + Value_1 +"', '" + Value_2 + "', '" + Value_3 + "');
int iUpdated = stmt.executeUpdate(query);
catch(Exception e)
// Catch Code
System.out.println("Number of records updated: " + iUpdated);
This will just enter empty string values if the strings are empty.
Is this what you wanted to know?
If not, provide a bit more information and I'll try to help as best as I can -
How to eliminate inserting Duplicate rows into database using JDBC Adapter
File->Xi->JDBC
In above Scenario if the file has two rows their values are identical, then how can we eliminated inserting Duplicate rows into database using JDBC AdapterDatabase is a consumer of a SERVICE (SOA!!!!!!).
Database plays a business system role here!!!!
Mapping is part of an ESB service
Adaptor is a technology adapted to ESB framework to support specific protocol.
ESB accomplish ESB duties such as transformation, translation, routing. Routing use a protocol accepted by the consumer. In a JDBC consumer it is JDBC protocol and hence it a JDBC adaptor.
There is clear separation on responsibilities among business system and ESB. ESB do not participate in business decision or try to get into business system data layer.
So who ever are asking people to check duplicate check as part of mapping (an ESB service) may not understand integration practice.
Please use an adaptor module which will execute the duplicate check with business system in a plug and play approach and separate that from ESB service so that people can build integration using AGILE approach.
Thanks -
Error inserting a row into a table with identity column using cfgrid on change
I got an error on trying to insert a row into a table with identity column using cfgrid on change see below
also i would like to use cfstoreproc instead of cfquery but which argument i need to pass and how to use it usually i use stored procedure
update table (xxx,xxx,xxx)
values (uu,uuu,uu)
My component
<!--- Edit a Media Type --->
<cffunction name="cfn_MediaType_Update" access="remote">
<cfargument name="gridaction" type="string" required="yes">
<cfargument name="gridrow" type="struct" required="yes">
<cfargument name="gridchanged" type="struct" required="yes">
<!--- Local variables --->
<cfset var colname="">
<cfset var value="">
<!--- Process gridaction --->
<cfswitch expression="#ARGUMENTS.gridaction#">
<!--- Process updates --->
<cfcase value="U">
<!--- Get column name and value --->
<cfset colname=StructKeyList(ARGUMENTS.gridchanged)>
<cfset value=ARGUMENTS.gridchanged[colname]>
<!--- Perform actual update --->
<cfquery datasource="#application.dsn#">
UPDATE SP.MediaType
SET #colname# = '#value#'
WHERE MediaTypeID = #ARGUMENTS.gridrow.MediaTypeID#
</cfquery>
</cfcase>
<!--- Process deletes --->
<cfcase value="D">
<!--- Perform actual delete --->
<cfquery datasource="#application.dsn#">
update SP.MediaType
set Deleted=1
WHERE MediaTypeID = #ARGUMENTS.gridrow.MediaTypeID#
</cfquery>
</cfcase>
<cfcase value="I">
<!--- Get column name and value --->
<cfset colname=StructKeyList(ARGUMENTS.gridchanged)>
<cfset value=ARGUMENTS.gridchanged[colname]>
<!--- Perform actual update --->
<cfquery datasource="#application.dsn#">
insert into SP.MediaType (#colname#)
Values ('#value#')
</cfquery>
</cfcase>
</cfswitch>
</cffunction>
my table
mediatype:
mediatypeid primary key,identity
mediatypename
my code is
<cfform method="post" name="GridExampleForm">
<cfgrid format="html" name="grid_Tables2" pagesize="3" selectmode="edit" width="800px"
delete="yes"
insert="yes"
bind="cfc:sp3.testing.MediaType.cfn_MediaType_All
({cfgridpage},{cfgridpagesize},{cfgridsortcolumn},{cfgridsortdirection})"
onchange="cfc:sp3.testing.MediaType.cfn_MediaType_Update({cfgridaction},
{cfgridrow},
{cfgridchanged})">
<cfgridcolumn name="MediaTypeID" header="ID" display="no"/>
<cfgridcolumn name="MediaTypeName" header="Media Type" />
</cfgrid>
</cfform>
on insert I get the following error message ajax logging error message
http: Error invoking xxxxxxx/MediaType.cfc : Element '' is undefined in a CFML structure referenced as part of an expression.
{"gridaction":"I","gridrow":{"MEDIATYPEID":"","MEDIATYPENAME":"uuuuuu","CFGRIDROWINDEX":4} ,"gridchanged":{}}
ThanksIs this with the Travel database or another database?
If it's another database then make sure your columns
allow nulls. To check this in the Server Navigator, expand
your DataSource down to the column.
Select the column and view the Is Nullable property
in the Property Sheet
If still no luck, check out a tutorial, like Performing Inserts, ...
http://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/index.jsp
John
Maybe you are looking for
-
Attaching/Detaching libraries with Java API
Hello, In my forms (Forms10g), sometimes, libraries had been attached in lower case although files are in upper case. This causes compilation errors on UNIX systems. I'm trying to detach these libraries with Java APIs and then reattach them in upper
-
Hi, I'm trying to check whether an user has permission to explore a folder in the filesystem. I've reached to capture a NullPointerException when i use the list() mehod for the file object, but I wanted to check it before the exception has to be thro
-
Html code for quicktime audio stream
I am looking for the html code to play mp3-audio files on a website. I used to write it with the <embed>-tag, but this does not work in modern browsers like firefox 8 or opera 11.5. Perhaps someone can help me. Thanks in advance.
-
I can see this has been raised before, but it still doesn't appear to be fully resolved. I have successfully edited an existing Mac Mail template for my own purposes, but the same problem arises when trying to attach PDFs or any other document format
-
Ipad Mini cracked in the car during a cold day in Canada
Hello everyone, thank you for taking the time to look at this question. My Ipad Mini is about six months old and it recently has cracked. There are two hairline cracks on the top right and bottom left of the screen. No one has dropped it, and it has