Keeping track of multiple tables

I'm creating multiple tables by resuing the same JTable object and merely changing and the tablemodel associated with it. The number of tables I have are based on the number of data tables I have.
Right now I have an Mouselistener attached to my tables to register which rows and columns have been clicked on. My question is, how do I keep track of which table the row and column come from? Any suggestions?
Thanks in advance.

I won't do a lecture on Java object and reference here.
If a single JTable keeps changing its model or model data, it's simply no problem.
Are you going to do that?
However,
JTable t0, t1, t2, t3, ... ;
t0 = new JTable(model0);
t1 = t2 = t3 = ... = t0;
/* and, somewhere else ... */
t1.setModel(model1);
/* again elsewhere */
t2.setModel(model2);
.....This is certainly a disaster.
how do I keep track of which table the row and column come from?Define a custom class for object for managing table meta data. And use a Collection or a Map
for storing them. Or, simple set of meta data can be stored in your table model object that
extends DefaultTableModel. Don't extend AbstractTableModel -- that is often unnecessary
and often can be a futile, bogging and nightmarish effort. Keep yourself away from it.

Similar Messages

  • What does DIAdem do to keep track of multiple versions of itself?

    I am using an automation reference to open up DIAdem. I have 8.1 and 9.0 installed. If I run DIAdem 8.1 and close it, then the reference gives me 8.1. If then I run DIAdem 9.0, the reference gives me 9.0. So the computer must be keeping track of the program that was run most recently. How does it do this?

    I don't have two versions on this computer so I can't play with it to find the exact key, it's probably going to be under HKEY_CLASSES_ROOT\TypeLib\ somewhere, but it'll be under the Class ID rather than the name.
    Regards,
    Ryan K.

  • Keeping track of multiple projects

    I have an 84min movie I made years ago and want to edit a 3min trailer and a longer 12min trailer from footage I captured via the original VHS 4:3 transfer to mini-DV. I want to maintain the original 4:3 transfer but add 16:9 mattes to the two trailers.
    My concern is how to keep track of the various versions I want to make. I have already created a New Project for the full 84 min 4:3 and created a 2nd New Project that I put a 16:9 matte over. Framing is quite good too.
    I plan to make new projects for each version unless there's an easier way to keep track of everything. Nesting is also a consideration but I've never really done that before.
    Any comments, suggestions, warnings, etc. greatly appreciated.

    Not sure I understand what's wrong with the way you are doing it now.... creating new projects for each change? Or you could have one project with different sequences for each change.... Should be simple to keep track of things as long as you come up with a naming convention that works for you and then stick to it.
    rh

  • Keeping Track of multiple servers getting security updates

    I have over 1000 servers that I schedule security update deployments monthly. I have servers in the Americas, Europe and Asia.  There are several different schedules during a deployment cycle to accommodate the geographical location of each
    server. I've been keeping track, using a spreadsheet if the servers were patched successfully with SCCM or not. If they weren't, I would troubleshoot to see if there is an SCCM client issue, not enough space on the drive, the server in a hung state, etc.
    I check the reports as well, but if there is an SCCM client issue, that machine may not show up on the report. My point is I'm keeping track of the patching by using a spreadsheet. With all this information on mind, does someone have a better method of
    keeping track of a high multitude of servers when they have successfully patched?

    I'm using a dashboard for my patching process. Take a look at this post, I'm using something similar: http://blogs.technet.com/b/gary_simmons_mcs/archive/2014/09/16/system-center-2012-r2-configuration-manager-software-update-compliance-dashboard-part-1.aspx
    Gives me the right summary, and a better view of things with quick access to the underlying reports.
    Martin Bengtsson | www.imab.dk

  • Any table keep track of Sales order and relevant IDOC

    hi all,
    Do we have any table to keep track Sales order and its relevant IDOC in the system?
    A list of sales order# given by user, from the list, we would like to find a faster way to get the corresponding IDOC.
    thanks.

    Hi Reetha,
    EDIDS table would have the IDOC Number & sales order number. Parameter 2 is the field in EDIDS which would have the sales order number.
    I understand that this table would have many records but i dont think any other table would have the above combination. If you get any other table, then pls. do update @ it on this thread.
    Thanks,
    Best regards,
    Prashant

  • Table name which keep track records Items which is Personalized.

    Hi,
    Is their any table which keep track records of personalized items of self-service page.
    Thanks in advance
    Bachan.

    You can navigate to Functional administrator and get all the personalizations in an xml format. Hope that helps.
    Regards
    Sumit

  • Any standard table that keep tracks of changes in user attributes

    Hi,
    We have a HR system and we are tyring to find out a standard table that keep tracks of changes(when was it changed,who changed it,what has been changed) in user details like email,address etc.
    Plz let me know the solution
    Thanks
    Bala Duvvuri

    CDHDR
    CDPOS

  • Insert to multiple tables while keeping the referential integrity

    I would like to confirm whether we can have both updatable and reference for secondary entity. It seems to me that even though both updatable and reference can be checked for secondary entity, the secondary entity is not updatable.
    There are some scenarios that I hope to create the "parent" and "child" at the same time in the UI. For example, Employee and ProductExpertise which is in m:m relationship. We have three tables: Employee, EmployeeProduct, and Product. We have two view object, EmployeeVO which contains EmployeeEO, EmployeeProductVO which contains EmployeeProductEO and ProductEO. This can display EmployeeVO as master, and EmployeeProductVO as detail. However when we add a new product for the employee, we can only associate an existing product. We would like to create a new product and associate the product with employee. This cannot be achieved by the current EmployeeProductVO.
    I wonder if ADF supports inserting to multiple tables while keeping the foreign key reference integrity? In other words, in a 1:1..* (1 to 1 or 1 to many) relationship, must we have a master-detail view where we add parent first, then add child? Does ADF support adding both parent and child together with the correct foreign key assigned automatically for the child? Do we need to write code to do it?
    Any insight is appreciated.

    Hi,
    Assuming you are talking about ADF Business Components, yes, the framework can handle a batch insert that inserts both parent and child records in the same transaction. A few things that you may want to review:
    1). If you are using a database sequence for your primary keys (your question "Does ADF support adding both parent and child together with the correct foreign key assigned automatically for the child" made me think perhaps you were), have a read of the Fusion Developer's guide about the DBSequence type.
    2). In the same guide, have a read of section 38.8 - it talks about the small bit of code you may need to write to ensure the parent record is posted before the children, and also discusses about associations that are based on DB Sequences.
    Best,
    John

  • Keeping track of anyone who made a deletion from a table

    Dear all;
    I thought this was going to be easy but I am yet to think of a solution to this problem. I have the following table created
    create table test_tbl
       test_id varchar2(10) not null,
       test_modifiedby varchar2(30),
       test_result number(10),
       primary key(test_id)
    );with the following insert
    insert into test_tbl
      (test_id, test_modifiedby, test_result)
    values
      ('122', 'John', 4);
    insert into test_tbl
      (test_id, test_modifiedby, test_result)
    values
      ('123', 'Jamie', 6);
    insert into test_tbl
      (test_id, test_modifiedby, test_result)
    values
      ('124', 'Katy', 8);
    insert into test_tbl
      (test_id, test_modifiedby, test_result)
    values
      ('125', 'Eric', 10);I am trying to write a simple procedure which is used for deletion and also I would like to be able to keep track on and the save the user who made the deletion and that is where I am having problems. I need to keep track on who made the deletion because I have a trigger which is used to save all deleted test_id made. See trigger below
    CREATE OR REPLACE TRIGGER test_tbl_before_delete
    BEFORE DELETE ON test_tbl
    for each row
    begin
    insert into audit_test_tbl_table
        (test_id, test_modifiedby, test_result)
    values
       (:old.test_id,
        :old.test_modifiedby,
        :old.test_result
    end;Please how do I solve this problem. All help will be appreciated. Thank you.

    Unfortunately Rob, I wouldnt be able to do that because I am using a web development tool called Asp.net which is linked to our oracle database and from the web development tool, users are able to login into the application I am designing and based on their login creditials, they are able to carryout tasks like deletions, insertions, etc. Now I am able to get the user name and info directly from the web development and able to pass it into my deletion procedure. See procedure below
    procedure deletefromtest_tbl(delete_testid in varchar2, delete_modifieruser in varchar2)
      AS
    temp_cnt number;
    BEGIN
    select count(*) into temp_cnt from test_tbl td
    where td.test_id = delete_testid
    if(temp_cnt != 0) then
        delete test_tbl pk
        where pk.test_id = delete_testid
      commit;
        end if;
    end deletefromtest_tbl;From the procedure, I really don't know how to apply the delete_modifieruser (which contains the information of the user that perform the delete) so that information gets saved in the audit_test_tbl_table.

  • How does DIAdem keep track of which version is active when multiple versions are installed?

    I need a way to find out which version of DIAdem is active, without creating an automation reference. How does DIAdem keep track of this? I don't think it's through the registry as far as I can tell. Thanks.

    Hi,
    I'm not quite sure what you mean by "version of DIAdem is active". If you are trying to reference DIAdem from an external program, you will need to use an automation reference. Besides this case, I am not sure what you are referring to.
    Perhaps a short description of your application or intended use will help me point you in the right direction.
    Allen P.
    National Instruments

  • Multiple tables with the possibility of multiple records in each table

    Post Author: viper
    CA Forum: .NET
    Hi
    I have been trying for a few days now to come up with a CR solution to displaying data from multiple tables.  These tables, in some cases, have more then one record that needs to be displayed.  This is basically what I am trying to do.....
    I am developing a .net web application(vb) using vs2005 and an oracle 10g backend.  There is a data entry part of the site that users will enter data related to a property.  Other users will be able to search these records and have a list of records returned based on the search criteria.  The user then can click on one of these records to view a pop up CR report containing all the data related to that one property.  The PropID is passed to the pop up page and is used in the WHERE clause of my SQL statement to bring back only one property.  This data can come from as many as 18 tables if all the fields have been entered for this property.  I have tried many different solutions to get the data from multiple tables...and have had some that were close to what I need.  The best one I have will display data from multiple tables but only one record per table.....which doesn't work in my case since some of the tables have more then one record per table.
    Is there anybody that has had success in setting up similar reports?
    Does anybody know how I could use the "Group Expert" to group by the tables in my application?  I can only figure out how to group within a single table.
    It would be great if I could group by table....then just display the record(s) in each table that had the same PropID.  I am not sure if the pdf export would show all the data in that situation but it would be worth a try.  If fact...maybe I could create a new table called MyTables and just add two colums like MyTableID and MyTableName.  Then add all the table names to MyTables that I want to see in the report and add the associated MyTableID value to each table as a new column.  I could then group by MyTableID and PropID.  Just guessing here.
    Any ideas would be appreciated.

    Post Author: quafto
    CA Forum: .NET
    Your query is not too clear so I'll do my best to answer it broadly.
    You mentioned that you have a .NET web application where your users enter data on one screen and then may retrieve it on another. If the data is written in real time to a database then you can create a standard Crystal Report by adding multiple tables. The tables should be linked together using the primary and foreign keys in order to optimize the database query and give you a speedy report. Using unlinked tables is not recommended and requires the report engine to index the tables (it is quite slow).
    You also mentioned you have a "PropID" to be used in a WHERE clause. This is a great place to use a parameter in your report. This parameter can then be used in your record selection formula inside Crystal Reports. The report engine will actually create the WHERE clause for you based on the parameter value. This is helpful because it allows you to simply concentrate on your code rather than keeping track of SQL queries.
    Now, what Crystal does not do well with is uncertainty. When you design a report with X number of tables the report engine expects X number of tables to be available at processing time. You should not surprise the print engine with more or less tables because you could end up with processing errors or incorrect data. You may need to design multiple reports for specific circumstances.
    Regarding the group expert question. I'm not sure how you would/could use the group expert to group a table? A table is a collection of fields and cannot be compared to another table without a complex algorithm. The group expert is used to group and sort records based on a field in the report. Have a look at the group expert section of the help file for more information.
    Hopefully my comments have given you a few ideas.

  • Keep track of reference of a row added to Jtable

    Hello All,
    I need to keep track of reference of a row which is being added in JTable.
    Let suppose that I adds a row in JTable based on an object (instantiated of a class say FileUploader class). Now I adds a row whenever FileUploader class is being instantiated. The FileUploader Class is responsible to upload a file.
    1) Now suppose that there are 100 rows (of course based on 100 object of FileUploader class).
    2) User can remove single or multiple row (by means of cancel the process of upload or clear the row in the JTable for which file has successfully uploaded).
    3) I need to update a particular cell of JTable based on the status of a particular object of class FileUploader.
    One way of doing this is by using for loop on whole table to find out the corresponding row (based on some key taken from table). But this will make the application very slow.
    So, to do this, I need to have the reference of the row when it is being added in the JTable.
    How can I make it working? Please suggest.
    Thank you

    You are right that iterating over 100 times is not slow. But what will happen if there are 10000 rows.
    I am new to JTable. In my application, when user drag and drop some files / folder, a row is being added in the JTable to show the status of process (pending, ProgressBar, Completed or Error in one cell based on the current status of file / folder ) along with some more info in other cell ( like fileName, FromDir, ToDir, Size, and a hyperlink type text for action - clear, cancel, retry).
    Now FileUploader is an class which is responsible for uploading (it has a method upload() in it which is called by a daemon thread).
    So to update a particular cell (in which pending / ProgressBar/ etc is shown), I need to find the particular row which is showing the status of a file / folder.
    How can I do it (without iterating over these no. of times again and again).
    Is there any better approach to do this.

  • How to update fields in multiple tables ?

    Dear all,
    What is the fastest way to update fields in multiple tables... from a single change table...as below is my code to update the fields but it is taking long time to update as i need to keep log file if any one update fails....
    CREATE OR REPLACE
    package body DO_DC_NAME_UPDATE_OTHER_TAB
    as
    type rowidArray is table of rowid index by binary_integer;
    type custRec is record
    n_cust_ref_no dbms_sql.number_table,
    v_name dbms_sql.varchar2_table,
    v_name_chg dbms_sql.varchar2_table,
    rowid rowidArray,
    changed dbms_sql.varchar2_table
    procedure VALIDATE_CUST_NAME( p_n_cust_ref_no in number,p_v_name_chg in out NOCOPY varchar2, p_changed in out NOCOPY varchar2 )
    is
    begin
    FOR cr_cust IN (SELECT --a.n_cust_ref_no,a.v_name,UPD_V_NAME, a.n_weight,a.V_LASTUPD_INFTIM
    from GNMT_CUSTOMER_MASTER_CHG where n_cust_ref_no=p_n_cust_ref_no)
         loop
    -- v_name
    if nvl(trim(cr_cust.v_name),0) != nvl(p_v_name_chg,0)
    then
              p_v_name_chg := p_v_name_chg;
              --p_v_name := p_v_name;
              p_changed := 'Y';
    end if;
         end loop;
    end;
    procedure DO_NAME_UPDATE_OTHER_TAB
    is
    l_record custRec;
    l_array_size number default 20000;
    l_done boolean;
    l_cnt number default 1;
    cursor c is select a.n_cust_ref_no, a.v_name,a.v_name_chg, a.rowid, 'N'
                        from GNMT_CUSTOMER_MASTER_CHG a--,GNMT_CUSTOMER_MASTER b
                        where a.v_name <> trim(a.v_name_chg); --and  a.n_cust_ref_no in (1434775,1561181,1601870);
    begin
    open c;
    loop
    dbms_application_info.set_client_info
    ( 'processing ' || l_cnt || ' thru ' || (l_cnt+l_array_size-1) );
    fetch c bulk collect into l_record.n_cust_ref_no, l_record.v_name,l_record.v_name_chg,l_record.rowid, l_record.changed
    LIMIT l_array_size;
    l_done := c%notfound;
    --dbms_output.put_line ('message10');
    for i in 1 .. l_record.n_cust_ref_no.count
    loop
    VALIDATE_CUST_NAME(l_record.n_cust_ref_no(i),l_record.v_name_chg(i),l_record.changed(i) );
    end loop;
    --dbms_output.put_line (l_record.n_cust_ref_no(i)||','||l_record.V_OCCUP_CODE(i)||','||l_record.CHANGED(i));
    /*forall i in 1 .. l_record.n_cust_ref_no.count
    update GNMT_CUSTOMER_MASTER q
    set q.v_name = l_record.v_name_chg(i)
    where q.n_cust_ref_no = l_record.n_cust_ref_no(i)
    and trim(q.v_name) = l_record.v_name(i)
    and l_record.changed(i) = 'Y';*/
    -- update v_name in all the related tables
    forall i in 1 .. l_record.n_cust_ref_no.count
    update ADE_CUSTOMER_MASTER q
    set q.v_NAME = l_record.v_name_chg(i)
    where q.n_cust_ref_no = l_record.n_cust_ref_no(i)
    and trim(q.v_name) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.v_NAME is not null;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update GNMT_POLICY_DETAIL q
    set q.v_NAME = l_record.v_name_chg(i)
    where q.n_cust_ref_no = l_record.n_cust_ref_no(i)
    and trim(q.v_name) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.v_NAME is not null;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update GNMT_QUOTATION_DETAIL q
    set q.v_NAME =l_record.v_name_chg(i)
    where q.n_cust_ref_no = l_record.n_cust_ref_no(i)
    and trim(q.v_name) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.v_NAME is not null;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update NBDT_BENEFICIARY q
    set q.V_NAME = l_record.v_name_chg(i)
    where q.n_cust_ref_no = l_record.n_cust_ref_no(i)
    and trim(q.V_NAME) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.v_NAME is not null;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update PSDT_NOMINATION_TRANSACTION q
    set q.V_NAME = l_record.v_name_chg(i)
    where q.n_cust_ref_no = l_record.n_cust_ref_no(i)
    and trim(q.V_NAME) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.v_NAME is not null;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update PSMT_POLICY_BENEFICIARY q
    set q.V_NAME = l_record.v_name_chg(i)
    where q.n_cust_ref_no = l_record.n_cust_ref_no(i)
    and trim(q.V_NAME) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.v_NAME is not null;
    commit;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update PSMT_POLICY_TRUSTEE q
    set q.V_NAME = l_record.v_name_chg(i)
    where q.n_cust_ref_no = l_record.n_cust_ref_no(i)
    and trim(q.V_NAME) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.v_NAME is not null;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update PSMT_QUOTATION_BENEFICIARY q
    set q.V_NAME = l_record.v_name_chg(i)
    where q.n_cust_ref_no = l_record.n_cust_ref_no(i)
    and trim(q.V_NAME) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.v_NAME is not null;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update PSMT_QUOTATION_TRUSTEE q
    set q.V_NAME = l_record.v_name_chg(i)
    where q.n_cust_ref_no = l_record.n_cust_ref_no(i)
    and trim(q.V_NAME) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.v_NAME is not null;
    commit;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update GNDT_BLACKLIST_DETAIL q
    set q.v_FNAME = l_record.v_name_chg(i)
    where q.n_cust_ref_no = l_record.n_cust_ref_no(i)
    and trim(q.v_FNAME) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.v_FNAME is not null;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update INDT_LIAM_DETAIL q
    set q.v_FNAME = l_record.v_name_chg(i)
    where q.n_cust_ref_no = l_record.n_cust_ref_no(i)
    and trim(q.v_FNAME) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.v_FNAME is not null;
    commit;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update GNMT_POLICY q
    set q.V_PAYER_NAME = l_record.v_name_chg(i)
    where q.N_PAYER_REF_NO = l_record.n_cust_ref_no(i)
    and trim(q.V_PAYER_NAME) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.V_PAYER_NAME is not null;
    commit;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update GNMT_QUOTATION q
    set q.V_PAYER_NAME = l_record.v_name_chg(i)
    where q.N_PAYER_REF_NO = l_record.n_cust_ref_no(i)
    and trim(q.V_PAYER_NAME) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.V_PAYER_NAME is not null;
    commit;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update GNMT_QUOTATION q
    set q.V_PROPOSER_NAME = l_record.v_name_chg(i)
    where q.N_PROPOSER_REF_NO = l_record.n_cust_ref_no(i)
    and trim(q.V_PROPOSER_NAME) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.V_PROPOSER_NAME is not null;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update GNMT_POLICY q
    set q.V_PROPOSER_NAME = l_record.v_name_chg(i)
    where q.N_PROPOSER_REF_NO = l_record.n_cust_ref_no(i)
    and trim(q.V_PROPOSER_NAME) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.V_PROPOSER_NAME is not null;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update CLMT_CLAIM_MASTER q
    set q.V_CLIENT_NAME = l_record.v_name_chg(i)
    where q.N_CLIENT_REF_NO = l_record.n_cust_ref_no(i)
    and trim(q.V_CLIENT_NAME) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.V_CLIENT_NAME is not null;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update CLMT_CLAIM_MASTER q
    set q.V_INTIMATOR_NAME = l_record.v_name_chg(i)
    where q.N_CLIENT_REF_NO = l_record.n_cust_ref_no(i)
    and trim(q.V_INTIMATOR_NAME) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.V_INTIMATOR_NAME is not null;
    forall i in 1 .. l_record.n_cust_ref_no.count
    update PYMT_VOU_MASTER q
    set q.V_PAYEE_NAME = l_record.v_name_chg(i)
    where q.n_cust_ref_no = l_record.n_cust_ref_no(i)
    and trim(q.V_PAYEE_NAME) = l_record.v_name(i)
    and l_record.changed(i) = 'Y'
    and q.V_PAYEE_NAME is not null;
    /*forall i in 1 .. l_record.n_cust_ref_no.count
         INSERT INTO GNMT_CUSTOMER_MASTER_LOG
              (N_CUST_REF_NO, V_TITLE_CODE, V_NAME, D_BIRTH_DATE, V_SEX, V_RELIGION_CODE, V_NATION_CODE, V_OCCUP_CODE, V_ALIVE, V_SMOKER,
              N_NO_STICKS, D_DEATH_DATE, V_BUMI_NON_BUMI, V_AGE_ADMITTED, V_SHORT_NAME, V_FIRST_NAME, V_LAST_NAME, V_EMAIL, V_DESIGNATION,
              N_HEIGHT,N_WEIGHT,V_TITLE_CODE_CHG, V_NAME_CHG, D_BIRTH_DATE_CHG, V_SEX_CHG,V_RELIGION_CODE_CHG,V_NATION_CODE_CHG, V_OCCUP_CODE_CHG, V_ALIVE_CHG,
              V_SMOKER_CHG, N_NO_STICKS_CHG, D_DEATH_DATE_CHG,V_BUMI_NON_BUMI_CHG, V_AGE_ADMITTED_CHG, V_SHORT_NAME_Chg, V_FIRST_NAME_Chg,
              V_LAST_NAME_Chg, V_EMAIL_Chg, V_DESIGNATION_Chg,N_HEIGHT_Chg,N_WEIGHT_Chg, V_UPD_STATUS_DC,-- V_LASTUPD_PROG, V_LASTUPD_INFTIM,
              V_LASTUPD_USER_DC, V_LASTUPD_PROG_DC,V_LASTUPD_INFTIM_DC
              SELECT N_CUST_REF_NO, V_TITLE_CODE, V_NAME, D_BIRTH_DATE, V_SEX, V_RELIGION_CODE, V_NATION_CODE, V_OCCUP_CODE, V_ALIVE, V_SMOKER,
              N_NO_STICKS, D_DEATH_DATE, V_BUMI_NON_BUMI, V_AGE_ADMITTED, V_SHORT_NAME, V_FIRST_NAME, V_LAST_NAME, V_EMAIL, V_DESIGNATION,
              N_HEIGHT,N_WEIGHT,V_TITLE_CODE_CHG, V_NAME_CHG, d_birth_date_chg, V_SEX_CHG, V_RELIGION_CODE_CHG,V_NATION_CODE_CHG, V_OCCUP_CODE_CHG, V_ALIVE_CHG,
              V_SMOKER_CHG, N_NO_STICKS_CHG, D_DEATH_DATE_CHG, V_BUMI_NON_BUMI_CHG, V_AGE_ADMITTED_CHG, V_SHORT_NAME_Chg, V_FIRST_NAME_Chg,
              V_LAST_NAME_Chg, V_EMAIL_Chg, V_DESIGNATION_Chg,N_HEIGHT_Chg,N_WEIGHT_Chg--, V_LASTUPD_USER, V_LASTUPD_PROG, V_LASTUPD_INFTIM
              ,'PROCESSED'
              ,user,--P_USER,
              'DC_PAKAGE',
              sysdate--P_DATE
              FROM GNMT_CUSTOMER_MASTER_CHG where n_cust_ref_no =l_record.n_cust_ref_no(i)
              --and n_cust_ref_no not in (select n_cust_ref_no from GNMT_CUSTOMER_MASTER_LOG);*/
    exit when (l_done);
    l_cnt := l_cnt + l_array_size;
    end loop;
    commit;
    end;
    end;
    thank You

    Dear SeánMacGC thanks for reply,
    But "a.changed" is not a field in GNMT_CUSTOMER_MASTER_CHG. what i am doing in this procedure is i am collecting bulck data and validating field by field from GNMT_CUSTOMER_MASTER_CHG with GNMT_CUSTOMER_MASTER table as their structure is same.. if v_name is not same as v_name_chg then i am setting changed flag to "Y" changed is "changed dbms_sql.varchar2_table" and updating GNMT_CUSTOMER_MASTER in bluck where changed flag ='Y'...
    type custRec is record
    n_cust_ref_no dbms_sql.number_table,
    v_name dbms_sql.varchar2_table,
    v_name_chg dbms_sql.varchar2_table,
    rowid rowidArray,
    *changed dbms_sql.varchar2_table*
    i cannot use simple SQL as i need to validate field for each records with GNMT_CUSTOMER_MASTER_CHG and insert into log file as well.....
    to run this procedure:
    execute DO_DC_NAME_UPDATE_OTHER_TAB.DO_NAME_UPDATE_OTHER_TAB;
    Thanks...

  • Best way to remove duplicates based on multiple tables

    Hi,
    I have a mechanism which loads flat files into multiple tables (can be up to 6 different tables) using external tables.
    Whenever a new file arrives, I need to insert duplicate rows to a side table, but the duplicate rows are to be searched in all 6 tables according to a given set of columns which exist in all of them.
    In the SQL Server Version of the same mechanism (which i'm migrating to Oracle) it uses an additional "UNIQUE" table with only 2 columns(Checksum1, Checksum2) which hold the checksum values of 2 different sets of columns per inserted record. when a new file arrives it computes these 2 checksums for every record and look it up in the unique table to avoid searching all the different tables.
    We know that working with checksums is not bulletproof but with those sets of fields it seems to work.
    My questions are:
    should I use the same checksums mechanism? if so, should I use the owa_opt_lock.checksum function to calculate the checksums?
    Or should I look for duplicates in all tables one after the other (indexing some of the columns we check for duplicates with)?
    Note:
    These tables are partitioned with day partitions and can be very large.
    Any advice would be welcome.
    Thanks.

    >
    I need to keep duplicate rows in a side table and not load them into table1...table6
    >
    Does that mean that you don't want ANY row if it has a duplicate on your 6 columns?
    Let's say I have six records that have identical values for your 6 columns. One record meets the condition for table1, one for table2 and so on.
    Do you want to keep one of these records and put the other 5 in the side table? If so, which one should be kept?
    Or do you want all 6 records put in the side table?
    You could delete the duplicates from the temp table as the first step. Or better
    1. add a new column WHICH_TABLE NUMBER to the temp table
    2. update the new column to -1 for records that are dups.
    3. update the new column (might be done with one query) to set the table number based on the conditions for each table
    4. INSERT INTO TABLE1 SELECT * FROM TEMP_TABLE WHERE WHICH_TABLE = 1
    INSERT INTO TABLE6 SELECT * FROM TEMP_TABLE WHERE WHICH_TABLE = 6
    When you are done the WHICH_TABLE will be flagged with
    1. NULL if a record was not a DUP but was not inserted into any of your tables - possible error record to examine
    2. -1 if a record was a DUP
    3. 1 - if the record went to table 1 (2 for table 2 and so on)
    This 'flag and then select' approach is more performant than deleting records after each select. Especially if the flagging can be done in one pass (full table scan).
    See this other thread (or many, many others on the net) from today for how to find and remove duplicates
    Best way of removing duplicates

  • Delete records from multiple table

    Hi,
    I need to delete records from multiple tables using a single delete statement. Is it possible ? If so please let me know the procedure.
    Kindly Help.
    Thanks,
    Alexander.

    Hi Tim,
    Syntax of DELETE statement does not allow for multiple tables to be specified in this way. Infact, none of the DMLs allow you to specify table names like this.
    Technically, there are other ways of deleting from multiple tables with one statement.
    1. "Use a trigger":
    What was probably meant by this is that you have a driving-table on which you create a on-delete trigger. In this trigger, you write the logic for deleting from other tables that you want to delete from.
    This does mean a one-time effort of writing the trigger. But the actual DML operation of deleting from all the tables would be simply triggered by a delete on driving-table.
    2. Dynamic SQL:
    Write a PL/SQL code to open a cursor with table-names from which you want the data to be deleted from. In the cursor-for loop, write a dynamic SQL using the table-name to delete from that table.
    3. Using Foreign-Key constraint with Cascade-Delete:
    This I feel is a more 'cleaner' way of doing this.
    Having to delete data from multiple tables means that there is some kind of parent-child relationship between your tables. These relationships can be implemented in database using foreign-key constraints. While creating foreign-key constraint give the 'on delete cascade' clause to ensure that whenever data is deleted from parent-table, its dependent data is deleted from child-table.
    Using foreign-key constraint you can create a heirarchy of parent-child relationships and still your DELETE would be simple as you would only have to delete from parent-table.
    IMPORTANT: Implementing foreign-key constraints would also impact other DML operations that you should keep in mind.

Maybe you are looking for