Update of Table to another Table in another DB

I have 2 different tables in 2 different bases.  We'll call it base1 table1 and table2 of base2.  I want to update table1 in database1 based on data residing in table2 in base2.  Both Oracle 11 g.  I wrote a script, but it is the most effective way to perform the update?

What I'm doing...

I want to compare the data from the source (table 2) and update my target (table 1) data based on a perfect match.  I want to update the respective fields in table1 with the data in table2, if and only if, there is a perfect match of the table1_key = table2_key fields.  If it finds the match, and then it retrieves the respective data and maps it to its respective columns.

declare

cursor c1 is

SELECT * FROM schema2.table2@mydblink WHERE table2_key IS NOT NULL;

Start

I'm in c1 LOOP

UPDATE table1 t1

SET table1_c1 = i.table2_c1,

table1_c2 is i.table2_c2,

table1_c3 is i.table2_c3,

table1_c4 is i.table2_c4,

table1_c5 is i.table2_c5,

table1_c6 is i.table2_c6,

table1_c7 is i.table2_c7

where exists (select 1 from classdefinition cd where t1.object_class_id = cd.object_id and cd.symbolic_name = 'DC' t1.table1_key is not null and t1.table1_c1 is null and t1.table1_key = i.table2_key);

END LOOP;

END;

/

output

Any suggestion is appreciated.  Thank you!!

Select * from table2@mydblink where table2_key = 'xxx '; -Search registration

If you have two rows are you can update two rows. You can't wait to update three.

Char (30) is more convenient, please change to VARCHAR2 as soon as POSSIBLE.

You should now use TRIM (table1_key) = (table2_key) TRIM to match just like CHAR autopad space at the end.

Tags: Database

Similar Questions

  • Update of table column in this table corresponds with another table

    UPDATE of table column where this table corresponds to a column with another table of columns,
    Example:

    I need to update column in the table SIEBEL_ASSETS MATACH_FLAG = 'Yes' when less than the conditions of the
    Select a.*, SIEBEL_ASSETS a, gis_cad, c
    where upper (a.Province) = upper (c.province)
    and upper (a.TOWNSHIP_NAME_EXT) = upper (c.suburb)
    and a.Stand_ # = c.ERF_NO
    update siebel_assets a
    set    match_flag = 'yes'
    where  exists (select 1
                   from   gis_cad c
                   where  upper(a.Province) = upper(c.province)
                   and    upper(a.TOWNSHIP_NAME_EXT) = upper(c.suburb)
                   and    a.Stand_# = c.ERF_NO
                  )
    ;
    
  • How to update a table and insert into another

    I need to update a table and also to insert into another table and want to do it in the same form. I can it will break in 2 different forms, but it is awkward for the user. Is there a way common to this address? As a backdrop, the user is updated the status of a message (IE, changing it from open to closed) and then provide an answer. The response table is separate from the table of messages because its format is doing different.

    Thank you and sorry to bombard the forum today.

    .oO (davidbarrackphoto)

    > I need to update a table and also to insert into another table and want to
    > do it in the same form. I can it will break in 2 different forms, but it is
    > awkward for the user. Is there a way common to this address?

    You can do what you want in your form processing script. But for
    much more advanced than you must write your own code.

    > As a backdrop.
    > the user updates the status of a message (IE, changing it from open to closed)
    > and then provide an answer. The response table is separate from the table of messages
    > because its format is doing different.

    Just curious: what is the difference? IMHO, there should be only one table
    for messages. Can you post more details about it?

    Micha

  • Update a table with one column of another

    Oracle 11g
    Hello

    i'im trying to update the two columns of table SUPPORT (SUPPORT_X, SUPPORT_Y) with two columns of table POST_HTA_BT (POSTHTABT_GPS_X, POSTHTABT_GPS_Y)

    Understand that the two tables have the colum below:

    SUPPORT (SUPPORT_ID, SUPPORT_PLAQUE, POSTHTABT_ID, SUPPORT_X, SUPPORT_Y,...)

    POST_HTA_BT (POSTHTABT_ID, POSTHTABT_GPS_X, POSTHTABT_GPS_Y,...)

    The SUPPORT_PLAQUE has type varachar. Except the keys, the other columns are varchar type in both tables.

    The point here is to update the support_x, support_y with posthtabt_gps_x and posthtabt_gps_y.But before the update we have Sheik if the fifth number of the support plate is a number of characters from "0" to "9"and the rest of the caracter of the support_plaque is '00000'

    Please note that the support_plaque is stored in the table with the form: "0025800000!"

    So I did the below script, I try to execute in sql develop.

    SET SERVEROUTPUT ON

    DECLARE
    chiffre_liste varchar (200): = '0 ', '1', '2', '3', '4', ' 5 ', ' 6' ', 7', ' 8 ', ' 9';
    CURSOR CUR_GPS_SUPPORT IS
    Select MEDIA. SUPPORT_X, SUPPORT. SUPPORT_Y, POSTE_HTA_BT. POSTHTABT_ID, SUPPORT. EXPL_ID,
    SUPPORTED. SUPPORT_PLAQUE, POSTHTABT_GPS_X, POSTHTABT_GPS_Y
    support,.
    POSTE_HTA_BT
    where
    SUPPORTED. SUPPORT_X IS NULL and
    SUPPORTED. SUPPORT_Y IS NULL and
    SUPPORTED. POSTHTABT_ID = POSTE_HTA_BT. POSTHTABT_ID and
    SUPPORTED. EXPL_ID = POSTE_HTA_BT. EXPL_ID
    Order of SUPPORT. POSTHTABT_ID;

    w_POSTHTABT_ID POSTE_HTA_BT. Type of POSTHTABT_ID %;
    w_SUPPORT_X SUPPORT. TYPE % SUPPORT_X;
    w_SUPPORT_Y SUPPORT. TYPE % SUPPORT_Y;
    w_EXPL_ID SUPPORT. TYPE % EXPL_ID;
    w_SUPPORT_PLAQUE SUPPORT. TYPE % SUPPORT_PLAQUE;
    w_POSTHTABT_GPS_X POSTE_HTA_BT. TYPE % POSTHTABT_GPS_X;
    w_POSTHTABT_GPS_Y POSTE_HTA_BT. TYPE % POSTHTABT_GPS_Y;

    BEGIN
    DBMS_OUTPUT. Put_line ('loading the coordoonnees GPS - GPS Coord update takes care of starting ');

    FOR HEART LOOPING CUR_GPS_SUPPORT

    w_POSTHTABT_ID: = cur. POSTHTABT_ID;
    w_SUPPORT_PLAQUE: = cur. SUPPORT_PLAQUE;
    w_SUPPORT_X: = cur. SUPPORT_X;
    w_SUPPORT_Y: = cur. SUPPORT_Y;
    w_POSTHTABT_GPS_X: = cur. POSTHTABT_GPS_X;
    w_POSTHTABT_GPS_Y: = cur. POSTHTABT_GPS_X;

    If substr (cur.support_plaque, 5, 1 chiffre_liste) and substr (cur.support_plaque, 6, 5) = '00000'
    w_SUPPORT_X: = CUR. POSTHTABT_GPS_X
    w_SUPPORT_Y: = CUR. POSTHTABT_GPS_Y
    END if;
    EXCEPTION WHEN NO_DATA_FOUND THEN w_SUPPORT_X: = NULL and w_SUPPORT_Y: = NULL;
    END;

    -Updated the table of the supports
    Update SUPPORT
    Set SUPPORT_X = w_SUPPORT_X,
    SUPPORT_Y = w_SUPPORT_Y
    where SUPPORT_PLAQUE = w_SUPPORT_PLAQUE;
    -On valid imm? immediately
    commit;
    EXCEPTION when no_data_found then null;
    -No details found
    END;

    END;
    /

    and I got the following errors:

    Error report:
    ORA-06550: line 2, colum 34:
    PLS-00103: symbol ',' met instead of one of the following symbols:

    * & = - + ; <>/ is mod remains not rem
    <>< Hurst (*) > or! = or ~ = > = < = <>and like2 or
    like4 likec between | submultiset of type multiset Member
    ORA-06550: line 2, column 52:
    PLS-00103: symbol ';' met instead of one of the following symbols:

    ), * & = - + <>/ is mod remains not rem = >
    <>< Hurst (*) > or! = or ~ = > = < = <>and like2 or
    like4 likec between | Member of multiset must
    ORA-06550: line 38, colum 48:
    PLS-00103: symbol 'CHIFFRE_LISTE' met instead of one of the following symbols:

    (
    Symbol "(" a été substitué à "CHIFFRE_LISTE" verser continuer.) "
    ORA-06550: line 39, 12 colum:
    PLS-00103: symbol 'W_SUPPORT_X' met instead of one of the following symbols:

    ), * & -+ / at rem mod < Hurst (*) > rest and or.
    multiset
    ORA-06550: line 40, 12 colum:
    PLS-00103: symbol 'W_SUPPORT_Y' met instead of one of the following symbols:

    . (), * @ % & = - + <>/ is mod remains not rem
    <>< Hurst (*) > or! = or ~ = > = < = <>and like2 or
    like4 likec between | mult
    ORA-06550: line 41, colum 9:
    PLS-00103: symbol 'END' met instead of one of the following symbols:

    . (), * @ % & = - + <>/ is mod remains not rem
    <>< Hurst (*) > or! = or ~ = > = < = <>and like2 or
    like4 likec between | multiset members
    06550 00000 - "line %s, column % s:\n%s".
    * Cause: Usually a PL/SQL compilation error.
    * Action:

    I checked the line number, but do not see the error in my code.

    Please could you help me?

    peace

    Hello

    glad to know that it worked. In fact, I don't see the reason to make these complicated processes.

    Remember the mantra:

    • If you can do it with SQL then do it with SQL

    Good evening!

    Alberto

  • Programatically update af:table when clicking on createInsert af:button

    Hi all

    I use JDeveloper 11.1.2.4.0.

    Requirement:

    I have an af:panelCollection, inside I have a (Add) af:button and an af:table. Af: button creates an empty line in a table as createInsert. Now when I click on the Add button, it creates the empty line in the af: table. But the blank row is not visible immediately. It is visible only when I do another action in this page, as on some other tab and back.

    From my observation, I found that the updating of the table does not occur immediately.

    I want to create a blank line like createInsert done and immediately refresh the table so that the empty line is visible in the table.

    I tried to adjust the partialTrigger of the tab; the reference to the id of the af: button, but still not working.

    I tried to update the table in a pragmatic way during the click on the button, but did not work.

    Can anyone suggest me solution for this.

    Thank you and best regards,

    Susanto

    Try to update af:panelCollection and see.

  • Best way to update a table with separate values

    Hi, I would really appreciate some advise:

    I need to regularly perform a task where I update 1 table with all the new data that has been entered in another table. I cannot perform a complete insert because this will create data duplicated each time it works, so the only way I can think of is the use of cursors in the script below:


    CREATE OR REPLACE PROCEDURE update_new_mem IS
    tmpVar NUMBER;

    CURSOR c_mem IS
    SELECT nom_membre, member_id
    OF gym.members;
    CREC c_mem % ROWTYPE;


    BEGIN
    OPEN c_mem.
    LOOP
    SEEK c_mem INTO crec;
    EXIT WHEN c_mem % NOTFOUND;
    BEGIN
    UPDATE gym.lifts
    Name = crec.member_name
    WHERE member_id = crec.member_id;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN NULL;
    END;
    IF SQL % NOTFOUND THEN
    BEGIN
    INSERT INTO gym.lifts
    (name, member_id)
    VALUES (crec.member_name, crec.member_id);
    END;
    END IF;
    END LOOP;
    CLOSE C_mem;

    END update_new_mem;



    This method works, but y at - it a (faster) easier way to update another table with new data only?

    Thank you very much

    >
    This method works, but y at - it a (faster) easier way to update another table with new data only?
    >
    Almost anything would be better than this treatment of slow-by-slow loop.

    You don't need a procedure, you should just use MERGE for this. See the examples in the section of the MERGER of the doc of the SQL language
    http://docs.Oracle.com/CD/B28359_01/server.111/b28286/statements_9016.htm

    MERGE INTO bonuses D
       USING (SELECT employee_id, salary, department_id FROM employees
       WHERE department_id = 80) S
       ON (D.employee_id = S.employee_id)
       WHEN MATCHED THEN UPDATE SET D.bonus = D.bonus + S.salary*.01
         DELETE WHERE (S.salary > 8000)
       WHEN NOT MATCHED THEN INSERT (D.employee_id, D.bonus)
         VALUES (S.employee_id, S.salary*.01)
         WHERE (S.salary <= 8000);
    
  • Update of table with 14 million records

    good day, I'm updating a table with 14 million documents column. using the data from another table.
    This takes terrible time just updated to 500,000 over the weekend, which is unacceptable.
    ideas to improve my code and get the fastest update is much appreciated.

    DECLARE
    TYPE vc_type is table of index varchar2 (20) by pls_integer;
    type tabtype_rowid is table of pls_integer rowid indexes;
    my_cur sys_refcursor;
    cur_limit integer: = 10000;

    tab_rowid tabtype_rowid;

    Start
    OPEN FOR My_cur
    SELECT value, rowid
    TABLE 1A

    where the value IS NOT NULL
    and id is null;


    loop
    collect the fetch my_cur in bulk in tab_value, cur_limit limit tab_rowid;

    FORALL k IN 1.tab_npi.count

    UPDATE table 1A
    A.ID = (select id SET
    in Table 2b
    where value = tab_value (k)
    and rownum = 1
    )
    WHERE a.rowid = tab_rowid (k);

    COMMIT;

    When the output tab_value.count < cur_limit;.
    end loop;

    END;


    Thank you

    903537 wrote:
    I tried to update basic training, as a first step and it crashed...

    He didn't fail, it failed.

  • Update one field with another (which contains a timestamp)

    Hello

    I try to do what I thought, it was a simple task to update my db using the content of another, a field

    in my tbl_profiles I have:

    key | penSignedIn | lastSignedIn
    73. 2006-05-19 21:14:56.0

    I'm trying to update my table for the tbl_profiles.penSignedIn field is populated with the contents of tbl_profiles.lastSignedIn

    < cfquery datasource = "nya" >
    UPDATE tbl_profiles
    SET PenSignedIn = #rs_user.lastSignedIn #.
    WHERE profileID = 73
    < / cfquery >

    I get this error SEE "syntax error (missing operator) in query expression ' 2006-05-19 21:14:56.0'.»»

    and says CF "" SQL: UPDATE tbl_profiles SET PenSignedIn = 2006-05-19 21:14:56.0 WHERE profileID = 73 ".

    that looks ok to me! I have attached different formats such as
    SET PenSignedIn = {ts ' #MM_rsUser.lastSignedIn # '}
    SET PenSignedIn = #MM_rsUser.lastSignedIn #.
    SET PenSignedIn = ' #MM_rsUser.lastSignedIn # '.

    but none seem to not work that leads me into the wall! -can someone please point me in the right direction please

    Thank you so much.
    I have CF7 and database access

    If you try just to update the content of the column penSignedIn with the contents of the lastSignedIn column in the same table, follow these steps:


    UPDATE tbl_profiles
    SET PenSignedIn = lastSignedIn
    WHERE profileID = 73

    Otherwise, if you try to use the value of a variable, maybe you create a date/time object:


    UPDATE tbl_profiles
    SET PenSignedIn = #createodbcdatetime (rs_user.lastSignedIn) #.
    WHERE profileID = 73

    Phil

  • Is it possible to update a query with another query?

    I'm trying to update a query with another query (see the attachment of the code). Here is my setup: I have a table in an Access database in which I enter a string in a form and an update. This string is a single record in another table in the same data source. The first table has one record to provide the second, which has many and will have more. Basically what I was asking is: is this a valid thing to do in coldfusion? If this isn't the case, please help with a method to alter. I'm still new to coldfusion.

    The overall effect, I'm going to do is to display a folder as a profile of truck recommended on the website: www.truckerstoystore.net. Currently, I get an error when I try to view the page with the current configuration of the query.

    Check out this page to see the error: www.truckerstoystore.net/currentTOW2.cfm

    Assistance in this matter is greatly appreciated.
    ------------------------------------------------------------------------------------------ -----------------------------------------------------------------------

    The owner of the column has a data type of character and thus the value must be in single quotes

    WHERE owner = "#Owner #

    But as your learning, I suggest using cfqueryparam

    WHERE owner =

    Ken

  • call sub procedure for updating the table - need help

    Hi all

    I have a scneario wherein I get three values 0,2.5 and 57.
    For each value, I'll call another procedure that updates a table "sample_dest".
    The "sample_dest" table has a column "dest_nbr."

    Now, for each three values I get,
    I want to update only one record in the table 'sample_dest '.

    for example, I want to update the column "dest_nbr" with a value of 59.5 (0 + 2.5 + 57).

    I am unable to do this, because every time the procedure is called,
    the previous values are not stored. 57 is the last value I get,
    I am able to store only 57. But I want 59.5 to be updated in the table.

    How can I achieve this.
    Help, please.

    Concerning
    Rambeau.

    This should be done in a single sql statement, not in a loop of cursor (which is what it looks like you're doing). If sample_desc already contains records for samples, so it should look like:

    UPDATE sample_desc sdesc
    SET desc = (SELECT AVG(code) FROM sample_dest sdest
                WHERE sdesc.sample = sdest.sample)
    WHERE EXISTS (SELECT 1 FROM sample_dest sdest
                  WHERE sdesc.sample = sdest.sample)
    

    If sample_desc does not already contain records (unknown from your description), then it would be an insert as:

    INSERT INTO sample_desc
    SELECT sample, AVG(code)
    FROM sample_dest sdest
    GROUP BY sample
    

    John

  • How can I load updates from pilot to another pc using the ethernet cable?

    How can I load updates from pilot to another pc using the ethernet cable?

    You would be better to use a flashdrive rather than an Ethernet cable. To connect using an Ethernet cable you need a crossover cable and then configure the network cards.

    I hope this helps.

  • What API can be used to update the table cs_estimate_details (repair)

    I need to update the columns 'pricing_context' and 'pricing_attribute1' in the cs_estimate_details table.

    Which API can be used to update the columns. Where can I update the table directly?

    Try to use this "CS_Charge_Details_PVT" which in turn call "CS_ESTIMATE_DETAILS_PKG".

  • How do I update the table in Jdev

    Hello

    I use Jdev 11.1.1.7.1.

    The control of data, I added that ADF only read the table. When I click on the button create and return to the report screen, highlight lines are added.

    Highlighted those who is not inserted into the DB table but he showed in the report. How to remove it. How can I update the table?

    Kindly advice me.

    Thank you

    Swathi

    That's what I got:

    -You have a table read-only, and a link to create.

    -When you press the link create a popup will be launched with a new record (may be a form in the same table iterator).

    -When you press save to save the changes validation triggers, stop you to insert the record.

    -After the fire of validation you will close the pop-up window (by pressing icon or by pressing Cancel).

    -After closure of the pop-up window, you will find that reading one table has some blank lines.

    If it is your problem if you have 2 choices:

    1. in the AppModule you can make a new instance on the view object (to which redirect the table) If your view object called 'EmployeesView', so, in AppModule, you should have EmployeeView1 and EmployeeView2 and your table may point to EmployeeView1, and when you create new line create in EmployeeView2 and after completing the creation you can run the query and then refresh the table (as shown in the following code).

    2 - the second option in the popup cancelListener link at the rear bean method then you can update the table by program as:

        DCIteratorBinding iter = (DCIteratorBinding) BindingContext.getCurrent().getCurrentBindingsEntry().get("TableIteratorName"); // from pageDef.
        iter.getViewObject().executeQuery();
        RequestContext.getCurrentInstance().addPartialTarget(getTableComponent());// from table Binding property bind it to object in back bean
    
  • Update the Table of Adf

    Hi all

    I have a page jspx, with a table and a button.

    Create the table data control, and it contains 4 columns

    (Name, card student, asked (Question or answer)).

    I create the code for the button to work

    1. Select a record

    2 send email

    3. when I send the request goes from Q to A

    All work fine. The mail has been sent. The demand for DB password Q has. But in my jspx table refreshes.

    Until I close and open again, it displays all the data.

    How cal I solve it?

    Thanks in advance

    Christos.

    Simply add partialTrigger on table pointing to the button.

    It will update the table when the button is clicked.

  • Update a table using the clause

    Hello

    I want to update a table using the selected values.

    Cases in the sample:


    create table as empsalary)

    Select 1 as empid, 0 in the wages of all the double union

    Select option 2, the double 0);

    Data update are as follows

    with saldata as

    (

    Select 1 as empid, 5000 as wages, 500 as double pf

    Union of all the

    Select option 2, 10000,1000 like double pf

    )

    Select empid, salary saldata

    I tried the following query but does not work

    updated set of empsalary table (empid, salary) =

    (

    Select * from)

    with saldata as

    (

    Select 1 as empid, salary, 500 5000 as pf Union double all the

    Select option 2, 10000,1000 like double pf

    )

    Select empid, salary saldata

    ) sl

    where sl.empid = empsalary.empid

    )

    I use oracle 10g.

    Help, please.

    Krishna Devi wrote:

    Hello

    I want to update a table using the selected values.

    Cases in the sample:

    create table as empsalary)

    Select 1 as empid, 0 in the wages of all the double union

    Select option 2, the double 0);

    Data update are as follows

    with saldata as

    (

    Select 1 as empid, 5000 as wages, 500 as double pf

    Union of all the

    Select option 2, 10000,1000 like double pf

    )

    Select empid, salary saldata

    I tried the following query but does not work

    updated set of empsalary table (empid, salary) =

    (

    Select * from)

    with saldata as

    (

    Select 1 as empid, salary, 500 5000 as pf Union double all the

    Select option 2, 10000,1000 like double pf

    )

    Select empid, salary saldata

    ) sl

    where sl.empid = empsalary.empid

    )

    I use oracle 10g.

    Help, please.

    Thanks for posting creates table and test data.

    The error message would have helped because it's pretty obvious that this is the problem:

    Update table empsalary

    *

    ERROR on line 1:

    ORA-00903: invalid table name

    Just remove the word "table".

  • You need to update a Table on a regular basis. Incremental update on only records updated in the Source table

    Dear all,

    I have a requirement to extract the full details of human resources and payroll related applications Oracle HRMS tables.

    You will need to create a table with these values for a specific nationality.

    Post Table design, I have to periodically update this table, in that based on changes made to the Tables of basic Oracle.

    Ex: A Table like Structure:

    PERSON_IDNUMBER
    EMPLOYEE_TYPEVARCHAR2(80)
    BUSINESS_GROUP_IDNUMBER
    BUSINESS_GROUP_NAMEVARCHAR2 (240)
    STAFFNRVARCHAR2 (30)
    STAFF_NAME_ENVARCHAR2 (240)
    STAFF_NAME_ARVARCHAR2 (240)
    SHORT_NAMEVARCHAR2 (150)
    FIRST NAMEVARCHAR2 (150)
    LAST_NAMEVARCHAR2 (150)
    MIDDLE_INITIALSVARCHAR2(60)
    ASSIGNMENT_IDNUMBER
    TITLEVARCHAR2 (30)
    CATEGORYVARCHAR2 (30)
    MARITAL_STATUSVARCHAR2 (30)
    Date of birthDATE
    DOJ_COMPANYDATE

    This detail table is extracted from Oracle HRMS tabels like Per_all_people_F and Per_all_assignments_F etc. Not whenever a record is updated to say the employee's first name, I'll have to update this particular record for the employee. I am well aware of Materialized view feature. But I needed a faster solution, in PLSQL.

    I'm on a tight schedule. So any help is appreciated.

    Best regards
    Antony Jayaraj J

    Looks like you want to Merge.  There's even an associate HR example!

Maybe you are looking for