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,
    Rakhi

    Hi 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 problem

    Thanks 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 you

    Hi 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!
    regards

    Hi,
    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
    Regards

    All 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

    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 problem

    If 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
    - Ajay

    Hi,
    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

  • Not able to add songs to ipod

    ever since i updated my ipod i am not able to get my songs back onto my ipod

  • T5140 will not boot to OS

    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