Reading data from a set of tables
Hi,
I am writing code to extract the data from several tables in a database. For each table, I am dynamically getting the number of fields or columns in the table and using Resultset obtaining the data in every field for each row. I do this using the getObject() method. Once I get the data for every field, I then want to insert this data into another table and for this I am using setObject() method. I am using these methods because the type of each field will be known only at runtime. After I do this, I do executeUpdate() in order to insert the data into the new table.
The problem is here -
At times it just inserts a few rows / records in the new table or it just gets and sets the Object for the first Row/Record in the table and then it freezes.
Is there any problem with the getObject() and setObject() methods?
while(rs.next())
for (int i =1; i <= rsmd.getColumnCount(); i++)
obj = rs.getObject(i);
System.out.println("Object received " + obj);
pstmt.setObject(i,obj);
System.out.println("Object set : "+ obj);
pstmt.executeUpdate();
} // end of while
Thanks in advance,
Nik
I don't know which DBMS/JDBC driver you are using. But there are drivers out there which do not permit two open Statements on the same connection. Maybe that is your problem. Try to close the ResultSet and the SELECT statement before the executeUpdate() of the second statement
Another thing to check: are you sure the column order for the SELECT and the INSERT is identical (in other words, are you building the INSERT based on the information received from the ResultSet?)
When it freezes, what do you mean with that? Where exactly does it "freeze"?
This might be a DB lock which your program is waiting for - some DBMS do a page/table lock when updating, so a different statement could block your statement.
Thomas
Similar Messages
-
Oracle DB: How to read data from a corrupted database table.
Hi All,
Wanted to know if there is a way I could read data from a corrupted Oracle database table?
Are there any tools that I can use? Or does Oracle provides any mechanism to do that?
Any pointers in this regard would be helpful.
Thanks in Advance.user10600611 wrote:
Table shows inconsistent data.You are going to have to be more specific. Inconsistent in what sense? A correct data model should not allow for inconsistencies to crop up.
However, you may be able to use one of the many FLASHBACK features of Oracle to look at the table at a prior point in time before the corruption.
HTH! -
How to read data from idoc to internal table?
Hi
How to get data from idoc segments to internal table?Hi
Check this ex
The following coding sample, shows how you may read a MATMAS IDoc and extract the data for the MARA and MARC segments to some internal variables and tables.
DATA: xmara LIKE mara.
DATA: tmarc LIKE marc
OCCURS 0
WITH HEADER LINE.
LOOP AT edidd.
CASE edidd-segnam.
WHEN 'E1MARAM'.
MOVE edidd-sdata TO xmara.
WHEN 'E1MARCM'.
MOVE edidd-sdata TO tmarc.
APPEND tmarc.
ENDCASE.
ENDLOOP.
now do something with xmara and tmarc.
hope this helps you...
Reward points if useful..
Regards
Sreenivas -
Reading data from XML to Internal table
Hi Experts,
I got a requirement to read the data fom xml to internal table.is it possible to store deep internel table data into flat internal tables?my internel table contains 4 internel table and these 4 internel table contains 2 internel tables each...can any one help me o this...
points will be rewarded...
Regards,
RakhiHi Rakhi,
* Structure to Get the Client Details as in XML format
DATA: BEGIN OF client,
BEGIN OF Personal_Details,
kunnr like kna1-kunnr,
name1 like kna1-name1,
adrnr like kna1-adrnr,
END OF Personal_Details,
BEGIN OF Address,
street like adrc-street,
city1 like adrc-city1,
END OF Address,
BEGIN OF Communication,
fax_number like adrc-fax_number,
tel_number like adrc-tel_number,
END OF Communication,
END OF client.
DATA: it_client TYPE TABLE OF client WITH HEADER LINES,
result LIKE client.
DATA: xml_string TYPE string.
* Get the Client Details into the structure to be made as an XML string
TRY.
* Convert the Structure to XML string
CALL TRANSFORMATION ('ID')
SOURCE para = it_client
RESULT XML xml_string.
* Convert the XML string to structure - result
CALL TRANSFORMATION ('ID')
SOURCE XML xml_string
RESULT para = result.
CATCH cx_st_error.
ENDTRY.
best regards,
Thangesh -
Reading data volume in Set-up tables - LO Purchasing
Hi Gurus,
I performed OLI3BW and it took almost a day to complete for HDR, ITM & SCL structures. I would like to know is there a way we can find out volume of records tranferred to set-up tables. I used TCode: NPRT, this is showing only records from EKKO table. Please advise.
Thank You,Hi,
I think you can only goto the application tables ekko, ekpo... using transaction se16 to get an estimation of records posted to the setup tables.
regards
Siggi -
How to read data from field symbol containing Table
I defined a field symbols for reading output of a BRF plus rule however since fielk symbol is of type any
I cannot read its contents
Any inputs are highly appreciated
Please see attachment explaining problemThanks a lot for your help
However It did not work for me as it started giving error incompatible types
Here is my code
constants:lv_function_id type if_fdt_types=>id value '3440B5B078B21EE3BC9EB53C42F84A45'.
data:lv_timestamp type timestamp,
lt_name_value type abap_parmbind_tab,
ls_name_value type abap_parmbind,
lr_data type ref to data,
lv_counter type i value 0,
lr_target type ref to data,
lx_fdt type ref to cx_fdt,
lo_trace type ref to if_fdt_trace,
lo_lean_trace type ref to if_fdt_lean_trace,
la_z_string type if_fdt_types=>element_text,
lv_role_name type grac_role_name,
lv_result type string.
field-symbols <la_any> type any.
field-symbols <role_name> type grac_s_od_role_detail.
field-symbols <system> type string.
types:
begin of ys_access ,
role_name type string,
system_name type string,
end of ys_access .
types:
yt_access type table of ys_access .
field-symbols: <access_item> type table,
<ls_req_access> type ys_access.
data con_name type if_fdt_types=>element_text.
data ls_any type ys_access.
* All method calls within one processing cycle calling the same function must use the same timestamp.
* For subsequent calls of the same function, we recommend to use the same timestamp for all calls.
* This is to improve the system performance.
* If you are using structures or tables without DDIC binding, you have to declare the respective types
* by yourself. Insert the according data type at the respective source code line.
* GET TIME STAMP FIELD lv_timestamp.
* Process a function and record trace data, passing context data objects via a name/value table.
* Prepare function processing:
ls_name_value-name = 'Z_STRING'.
la_z_string = 'P1'.
get reference of la_z_string into lr_data.
ls_name_value-value = lr_data.
insert ls_name_value into table lt_name_value.
* Create the data to store the result value after processing the function
* You can skip the following call, if you already have
* a variable for the result. Please replace also the parameter
* EA_RESULT in the method call CL_FDT_FUNCTION_PROCESS=>PROCESS
* with the desired variable.
cl_fdt_function_process=>get_data_object_reference( exporting iv_function_id = lv_function_id
iv_data_object = '_V_RESULT'
iv_timestamp = lv_timestamp
iv_trace_generation = abap_true
importing er_data = lr_data ).
assign lr_data->* to <la_any>.
try.
cl_fdt_function_process=>process( exporting iv_function_id = lv_function_id
iv_timestamp = lv_timestamp
iv_trace_mode = if_fdt_constants=>gc_trace_mode_lean
"iv_trace_mode = if_fdt_constants=>gc_trace_mode_lean_required
importing ea_result = <la_any>
eo_trace = lo_trace
changing ct_name_value = lt_name_value ).
lo_lean_trace ?= lo_trace.
lo_lean_trace->save( ).
catch cx_fdt into lx_fdt.
* You can check CX_FDT->MT_MESSAGE for error handling.
endtry.
* Get context values after processing:
cl_fdt_function_process=>get_context_value( exporting iv_function_id = lv_function_id
iv_trace_generation = abap_true
iv_timestamp = lv_timestamp:
iv_data_object = '3440B5B078B21EE3BC9EFF599C110ADD' "Z_STRING
importing ev_data = lv_result ). " Suggested variable: la_z_string
create data lr_target type grac_s_od_role_detail.
* assign <la_any> to <role_name>.
assign lr_target->* to <la_any>.
loop at lt_name_value into ls_name_value.
if ls_name_value-name cs 'RESULT'.
assign ls_name_value-value to <la_any>.
ls_any = ls_name_value-value .
endif.
endloop.
access_item = <la_any>.
* assign ( )<la_any> to <access_item>.
* assign component 1 of structure <la_any> to <rolename>.
* assign <la_any> to <ls_req_access>.
* lr_target = <la_any>.
* assign lr_target->* to <role_name>.
* lv_role_name = <role_name>.
lv_result = lv_result. -
Reading Data from a Table With an Expert
Hi all - I'm trying to write an Expert in OWB that would read data from a table and create a new table based on that information. I have the table creation part down, but how can I read data from a table with an Expert? From what I've read, Experts only deal with metadata, and there is no mechanism in Experts to actually read data in the tables. Does OraTcl work in Experts? Has anyone ever came across this problem, and if so, how did you solve it? Thanks in advance for your time! - Don
Hi Don
Can also use Java and JDBC from within Tcl, see the routines in this file below, take modify or whatever;
http://blogs.oracle.com/warehousebuilder/ombora.tcl
source <dir>\ombora.tcl
set g_user scott
set g_upwd zzzzzz
set g_hostname localhost
set g_port 1521
set g_srvname ora111
oraconnect $g_user $g_upwd $g_hostname:$g_port:$g_srvname
oraselect "select * from emp" ""
As well as dumping the results to stdout (you probably want to comment that part out and change any other part you don't like), g_res is a ResultSet object you can use to do whatever.
Cheers
David -
Read data from E$ table and insert into staging table
Hi all,
I am a new to ODI. I want your help in understanding how to read data from an "E$" table and insert into a staging table.
Scenario:
Two columns in a flat file, employee id and employee name, needs to be loaded into a datastore EMP+. A check constraint is added to allow data with employee names in upper case only to be loaded into the datastore. Check control is set to flow and static. Right click on the datastore, select control and then check. The rows that have violated the check constraint are kept in E$_EMP+ table.
Problem:
Issue is that I want to read the data from the E$_EMP+ table and transform the employee name into uppercase and move the corrected data from E$_EMP+ into EMP+. Please advise me on how to automatically handle "soft" exceptions in ODI.
Thank youHi Himanshu,
I have tried the approach you suggested already. That works. However, the scenario I described was very basic. Based on the error logged into the E$_EMP table, I will have to design the interface to apply more business logic before the data is actually merged into the target table.
Before the business logic is applied, I need to read each row from the E$EMP table first and I do not know how to read from E$EMP table. -
Problem reading data from two tables
Hi experts,
I'm developing a JDBC - IDOC scenario that needs to read data from two oracle tables. I have created a BPM that has a initial fork for the two channels and it works fine.
The problem is that I need to read data from the first, two or both tables depending if there is data to read. If there is data in the two tables it works, but if only there is data in one of the two tables, I have read problems. I have tryed to set the 'neccesary branches' to 1 but this is a problem when I have data in both tables.
Any idea?
Best Regards,
Alfredo Lagunar.Hi,
have your fork step inside a block and then right-click your block to insert a deadline branch to your BPM process and specify the time after which your BPM process should be cancelled.....so if in that time, you get data from both tables, your BPM will work okay otherwise if that time is over, then your BPM process will be cancelled.
Regards,
Rajeev Gupta -
Do I have to use lock when I am reading data from a table
Hi,
When i am reading data from a table , do I have to set a lock on that table .
Is it necessary for us to set the lock on a table when I am reading data from the table.
When I am updating the table , do I have to set a lock on the table ?
If yes, then what sort of lock-read lock,write lock or shared lock?
Regards,
Sushanth H.S.check it out,
Lock objects are use in SAP to avoid the inconsistancy at the time of data is being insert/change into database.
SAP Provide three type of Lock objects.
- Read Lock(Shared Locked)
protects read access to an object. The read lock allows other transactions read access but not write access to
the locked area of the table
- Write Lock(exclusive lock)
protects write access to an object. The write lock allows other transactions neither read nor write access to
the locked area of the table.
- Enhanced write lock (exclusive lock without cumulating)
works like a write lock except that the enhanced write lock also protects from further accesses from the
same transaction.
You can create a lock on a object of SAP thorugh transaction SE11 and enter any meaningful name start with EZ Example EZTEST_LOCK.
Use: you can see in almost all transaction when you are open an object in Change mode SAP could not allow to any other user to open the same object in change mode.
Example: in HR when we are enter a personal number in master data maintainance screen SAP can't allow to any other user to use same personal number for changes.
Technicaly:
When you create a lock object System automatically creat two function module.
1. ENQUEUE_<Lockobject name>. to insert the object in a queue.
2. DEQUEUE_<Lockobject name>. To remove the object is being queued through above FM.
You have to use these function module in your program.
check this link for example.
http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
tables:vbak.
call function 'ENQUEUE_EZLOCK3'
exporting
mode_vbak = 'E'
mandt = sy-mandt
vbeln = vbak-vbeln
X_VBELN = ' '
_SCOPE = '2'
_WAIT = ' '
_COLLECT = ' '
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2
OTHERS = 3
if sy-subrc 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
Normally ABAPers will create the Lock objects, because we know when to lock and how to lock and where to lock the Object then after completing our updations we unlock the Objects in the Tables
http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
purpose: If multiple user try to access a database object, inconsistency may occer. To avoid that inconsistency and to let multiple user give the accessibility of the database objects the locking mechanism is used.
Steps: first we create a loc object in se11 . Suppose for a table mara. It will create two functional module.:
1. enque_lockobject
1. deque_lockobject
before updating any table first we lock the table by calling enque_lockobject fm and then after updating we release the lock by deque_lockobject.
Select the radio button "Lock object"..
Give the name starts with EZ or EY..
Example: EYTEST
Press Create button..
Give the short description..
Example: Lock object for table ZTABLE..
In the tables tab..Give the table name..
Example: ZTABLE
Save and generate..
Your lock object is now created..You can see the LOCK MODULES..
In the menu ..GOTO -> LOCK MODULES..There you can see the ENQUEUE and DEQUEUE function
Reward if helpful -
Problem with reading data from screen and inserting in table
hi ther,
im new to abap-webdyn pro. can anyone suggest how to read data from screen and insert into table when press 'ADD' button.
i done screen gui , table creation but problems with action. what the content of acton add.
is ther any link that helps me or tut??
thankx in advance!
regardsHi,
Create a context node for the screen fields for which you want to enter the values with cardinality 1.1.....
Now in the layout of your view bind the screen input fields to that context node(attributes) to the value property of the input fields...
Now in the action of ADD button....
--> go the wizard and select the read node button and select the node which you have created it generates the auto code for you.....
for example if the node is contains aone attribute like MATNR
reading the node from wizard will generate the code as....
DATA lo_nd_matnr TYPE REF TO if_wd_context_node.
DATA lo_el_matnr TYPE REF TO if_wd_context_element.
DATA ls_matnr TYPE wd_this->element_matnr.
DATA lv_matnr TYPE wd_this->element_matnr-matnr.
* navigate from <CONTEXT> to <MATNR> via lead selection
lo_nd_matnr = wd_context->get_child_node( name = wd_this->wdctx_matnr ).
* @TODO handle non existant child
* IF lo_nd_matnr IS INITIAL.
* ENDIF.
* get element via lead selection
lo_el_matnr = lo_nd_matnr->get_element( ).
* @TODO handle not set lead selection
IF lo_el_matnr IS INITIAL.
ENDIF.
* get single attribute
lo_el_matnr->get_attribute(
EXPORTING
name = `MATNR`
IMPORTING
value = lv_matnr ).
here the variable lv_matnr will contain the entered value......
now you can use this value for further process.
Thanks,
Shailaja Ainala. -
Help Required -- Can we use SQL Query to READ data from SAP MDM Tables
Hi All,
Please help.........
Can we use SQL Query to READ(No Creation/Updation/Deletion just Read) Data from SAP MDM tables directly, without using MDM Syndicator.
Or direct SQL access to SAP MDM tables is not possible. Only through MDM Syndicator can we export data.
Thanks in Advance
RegardsAll the tables you create in Repository comes under A2i_CM_Tables in Database named as your repository name. So the tables names are fields of table A2i_CM_Tables. Now i tried it but cant make it.
Now, I dont think its possible to extract all fields in tables and there values using select query. May be pure sql guy can do that or not.
But there is no relation of data extraction and syndicator. Data is viewed in Data Manager. and you can also store data in a file from DM also.
BR,
Alok -
when I was talking on phone, suddenly the phone was switched off.
i tried to switch it on but it gave the message....connect to itunes for set up.
when I connected it to itunes...it gave the message, itunes can not read data from this iphone, restore it to factory settings. It also said while restoring ypu will lose all media data but you can restore the contacts.
I restored the factory settings....the phone was on recovery mode...it was verified by itunes and all that..but in the end it again said that iphone has some problem and can not function right now.
after that when ever i connect it with itunes, it gives the message, it can not activate the iphone further, try again later or contact customer service.
What to do now?????? Customer service people say..it is hardware problemIf it's a hardware problem, then the phone will need to be replaced.
There is no magic that can fix a hardware problem. -
How to read data from a CLUSTER STRUCTURE not cluster table.
Hi,
how to read data from a CLUSTER STRUCTURE not cluster table.
regards,
Usha.Hello,
A structre doesnt contain data.. so u cannot read from it. U need to find out table of that structure and read data from it.
Regards,
Mansi. -
Reading Data from a SQL table to a Logical file on R/3 appl. Server
Hi All,
We would like to create Master Data using LSMW (direct Input) with source files from R/3 Application Server.
I have created files in the'/ tmp/' directory however I do not know how to read data from the SQL table and insert it into the logical file on the R/3 application server.
I am new to ABAP , please let me know the steps to be done to acheive this .
Regards
- AjayHi,
You can find lot of information about Datasets in SCN just SEARCH once.
You can check the code snippet for understanding
DATA:
BEGIN OF fs,
carrid TYPE s_carr_id,
connid TYPE s_conn_id,
END OF fs.
DATA:
itab LIKE
TABLE OF fs,
w_file TYPE char255 VALUE 'FILE',
w_file2 TYPE char255 VALUE 'FILE2'.
SELECT carrid connid FROM spfli INTO TABLE itab.
OPEN DATASET w_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT. "Opening a file in Application
" Server to write data
LOOP AT itab INTO fs.
TRANSFER fs TO w_file. "" Writing the data into the Application server file
ENDLOOP.
CLOSE DATASET w_file.
OPEN DATASET w_file FOR INPUT IN TEXT MODE ENCODING DEFAULT. "Opening a file in Application
" server to read data
FREE itab.
DO.
READ DATASET w_file INTO fs.
IF sy-subrc EQ 0.
APPEND fs TO itab.
OPEN DATASET w_file2 FOR APPENDING IN TEXT MODE ENCODING DEFAULT. "Appending more data to the file in the
" application server
TRANSFER fs TO w_file2.
CLOSE DATASET w_file2.
ELSE.
EXIT.
ENDIF.
ENDDO.
Regards
Sarves
Maybe you are looking for
-
Cannot connect macbook pro to TV via mini DVI/HDMI adapter
I am trying to connect my Macbook Pro (mid 2009) to a TV using a miniDVI to HDMI connection. This used to work fine without any issues. It stopped working after I upgraded my OS to snow leopard. In addition, when I go to the display settings, it will
-
How do i move photos and catalog to a new drive and have lightroom make the same move
I am trying to move all my photos to a new drive with different drive letter. I know I can do a backup and restore inside PSE13 to perform that. However, I also have Lightroom 5 on the current setup. How would I now use the new location for the ph
-
ever since i updated my ipod i am not able to get my songs back onto my ipod
-
I am unable to boot my T5140 Sparc Enterprise server. I can only get to the ILOM web interface and SER MGT interface. Once to the -> prompt I can start /SYS and start /SP/console but and that point all I get is a blinking cursor even after waiting a
-
WSDL generation from existing WebService
Hello everybody, we have got an existing WebService which we want to migrate to XI. Because we don't want to change the clients interfaces we would like to import the WSDL and XSD and than generate a WSDL from XI. First problem: The WebService exists