Unable to update row on parition column

Hi,
I am facing problem while updating rows in a table which is having partition and the update is on the partition key.
Kindly any benefitial will be helpful for me.
Thanks and Regards

Hi,
When I am operating the process through sql plus the error is not showing.
But in Toad while updating Error showing:
Row may have been deleted by another user or a trigger or ROWID may have changed due to update.
Thanks and Regards

Similar Messages

  • Update rows with a column

    hi
    gurus
    updating a row with a column
    i have first table with 5 columns
    id telephone, telex, mobile,email,santige
    1 9123455 12 987 @ 12452
    i have another second table having a columns like
    id comm , commid
    1 3245 1
    1 23 2
    1 786 3
    1 we@ 4
    1 122 5
    the commid is
    1-telephone 2-telex,3-mobile,4-email,5--santige
    the problem is i want to update the second table with the data of first table
    final data will comes like this
    id comm , commid
    1 9123455 1
    1 12 2
    1 987 3
    1 @ 4
    1 12452 5
    please adjust the data below the columns (for view)

    Something like
    UPDATE table2 t2
       SET comm = (SELECT DECODE(t2.commid, 1, telephone,
                                            2, telex,
                                            3, mobile,
                                            4, email,
                                            5, santige)
                     FROM table1 t1
                    WHERE t1.id = t2.id)should work.
    CREATE TABLE table1 (
      id NUMBER,
      telephone VARCHAR2(100),
      telex     VARCHAR2(100),
      mobile    VARCHAR2(100),
      email     VARCHAR2(100),
      santige   VARCHAR2(100)
    CREATE TABLE table2 (
      id     NUMBER,
      comm   VARCHAR2(100),
      commid NUMBER
    INSERT INTO table1 VALUES( 1, 'telephone', 'telex', 'mobile', 'email', 'santige' );
    BEGIN
      INSERT INTO table2 VALUES( 1, 'x', 1 );
      INSERT INTO table2 VALUES( 1, 'x', 2 );
      INSERT INTO table2 VALUES( 1, 'x', 3 );
      INSERT INTO table2 VALUES( 1, 'x', 4 );
      INSERT INTO table2 VALUES( 1, 'x', 5 );
    END;
    UPDATE table2 t2
       SET comm = (SELECT DECODE(t2.commid, 1, telephone,
                                            2, telex,
                                            3, mobile,
                                            4, email,
                                            5, santige)
                     FROM table1 t1
                    WHERE t1.id = t2.id);
    SQL> SELECT * FROM table2;
            ID COMM                COMMID
             1 telephone                1
             1 telex                    2
             1 mobile                   3
             1 email                    4
             1 santige                  5Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Unable to update the VAT_CODE column through supplier sites API

    Hi,
    I'm unable to update the vat code column of the ap_supplier_sites_all table using the ap_vendor_pub_pkg.update_vendor_site API.Oracle application instance 12.1.3 and OS linux.Please find the code below.I'm able to update other feilds,but not the vat_code.Please help on this.
    Thanks,
    Abhilash
    CREATE OR REPLACE PACKAGE BODY APPS.xx_wo172304_test
    AS
    PROCEDURE xx_vat_wo172304 (
    errbuf OUT VARCHAR2
    , retcode OUT VARCHAR2
    IS
    CURSOR cur_vat
    IS
    SELECT site.*
    FROM apps.ap_suppliers supp, apps.ap_supplier_sites_all site
    WHERE site.vat_code IN
    ('CZ OEUS 20', 'CZ OEUZ 20', 'CZ OJCD 20', 'CZ OT20', 'CZ-20-EDC', 'OEUS20', 'OEUZ20', 'OPP20E'
    , 'OS20', 'OT20')
    AND supp.vendor_id = site.vendor_id
    AND site.org_id IN (608, 1508, 2396, 2397)
    AND site.vendor_site_id =68154;
    l_vendor_site_rec ap_vendor_pub_pkg.r_vendor_site_rec_type;
    l_vat_code ap_supplier_sites_all.VAT_CODE%TYPE;
    l_vendor_site_id ap_supplier_sites_all.vendor_site_id%TYPE;
    x_return_status VARCHAR2 (100) := NULL;
    x_msg_data VARCHAR2 (1000) := NULL;
    x_msg_count NUMBER := NULL;
    l_error_reason VARCHAR2 (2000) := NULL;
    l_user_id           number := FND_GLOBAL.USER_ID;
    l_last_update_login           number := FND_GLOBAL.LOGIN_ID;
    l_program_application_id           number := FND_GLOBAL.prog_appl_id;
    l_program_id           number := FND_GLOBAL.conc_program_id;
    l_request_id           number := FND_GLOBAL.conc_request_id;
    BEGIN
    -- mo_global.init ('SQLAP');
    FOR rec_vat IN cur_vat LOOP
    IF rec_vat.org_id = 608 THEN
    IF rec_vat.vat_code = 'OEUS20' THEN
    l_vendor_site_rec.vat_code := 'CZ OEUS21';
    ELSIF rec_vat.vat_code = 'OEUZ20' THEN
    l_vendor_site_rec.vat_code := 'CZ OEUZ21';
    ELSIF rec_vat.vat_code = 'OPP20E' THEN
    l_vendor_site_rec.vat_code := 'CZ OPP21E';
    ELSIF rec_vat.vat_code = 'OS20' THEN
    l_vendor_site_rec.vat_code := 'CZ OS21';
    ELSIF rec_vat.vat_code = 'OT20' THEN
    l_vendor_site_rec.vat_code := 'CZ OS21';
    END IF;
    ELSIF rec_vat.org_id = 1508 THEN
    IF rec_vat.vat_code = 'CZ OJCD 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OJCD21';
    ELSIF rec_vat.vat_code = 'CZ OEUS 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OEUS21';
    ELSIF rec_vat.vat_code = 'CZ OEUZ 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OEUZ21';
    ELSIF rec_vat.vat_code = 'CZ OT20' THEN
    l_vendor_site_rec.vat_code := 'CZ OT21';
    END IF;
    ELSIF rec_vat.org_id = 2396 THEN
    IF rec_vat.vat_code = 'CZ OEUZ 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OEUZ 21';
    ELSIF rec_vat.vat_code = 'CZ OJCD 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OJCD 21';
    ELSIF rec_vat.vat_code = 'CZ OT20' THEN
    l_vendor_site_rec.vat_code := 'CZ OT21';
    ELSIF rec_vat.vat_code = 'CZ-20-EDC' THEN
    l_vendor_site_rec.vat_code := 'CZ-21-EDC';
    END IF;
    ELSIF rec_vat.org_id = 2397 THEN
    IF rec_vat.vat_code = 'CZ OEUS 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OEUS 21';
    ELSIF rec_vat.vat_code = 'CZ OEUZ 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OEUZ 21';
    ELSIF rec_vat.vat_code = 'CZ OJCD 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OJCD 21';
    ELSIF rec_vat.vat_code = 'CZ OT20' THEN
    l_vendor_site_rec.vat_code := 'CZ OT21';
    ELSIF rec_vat.vat_code = 'CZ-20-EDC' THEN
    l_vendor_site_rec.vat_code := 'CZ-21-EDC';
    END IF;
    END IF;
    l_vendor_site_id := rec_vat.vendor_site_id;
    l_vendor_site_rec.org_id := rec_vat.org_id;
    l_vendor_site_rec.vendor_id := rec_vat.vendor_id;
    --l_vendor_site_rec.vendor_site_code:='318581-MOR. KRU';
    l_vendor_site_rec.rfq_only_site_flag := 'Y';
    -- l_vendor_site_rec.last_update_date := SYSDATE;
    l_vendor_site_rec.last_updated_by := 1134;   MARTIN.ROUNDS
    -- DBMS_OUTPUT.put_line ('VAT CODE:' || l_vendor_site_rec.vat_code);
    --DBMS_OUTPUT.put_line ('Vendor Site Id:' || l_vendor_site_id);
    fnd_file.put_line (fnd_file.LOG
    , 'VAT CODE:' || l_vendor_site_rec.vat_code
    fnd_file.put_line (fnd_file.LOG
    , 'Vendor ID:' || rec_vat.vendor_id
    fnd_file.put_line (fnd_file.LOG
    , 'Vendor Site Id:' || l_vendor_site_id
    fnd_file.put_line (fnd_file.LOG
    , 'RFQ ONLY SITE FLAG:' || l_vendor_site_rec.rfq_only_site_flag
    ap_vendor_pub_pkg.update_vendor_site (p_api_version => 1
    , x_return_status => x_return_status
    , x_msg_count => x_msg_count
    , x_msg_data => x_msg_data
    , p_vendor_site_rec => l_vendor_site_rec
    , p_vendor_site_id => l_vendor_site_id
    ); --p_calling_prog     IN  VARCHAR2 DEFAULT 'NOT ISETUP'
    -- pos_vendor_pub_pkg.update_vendor_site (p_vendor_site_rec => l_vendor_site_rec
    -- , x_return_status => x_return_status
    -- , x_msg_count => x_msg_count
    -- , x_msg_data => x_msg_data
    --     ap_vendor_sites_pkg.update_row(
    --          p_vendor_site_rec => l_vendor_site_rec,
    --          p_last_update_date => sysdate,
    --          p_last_updated_by => l_user_id,
    --          p_last_update_login => l_last_update_login,
    --          p_request_id => l_request_id ,
    --          p_program_application_id => l_program_application_id,
    --          p_program_id => l_program_id,
    --          p_program_update_date => sysdate,
    --          p_vendor_site_id => l_vendor_site_id);
    fnd_file.put_line (fnd_file.LOG
    , 'Return Status:' || x_return_status
    IF x_return_status <> fnd_api.g_ret_sts_success THEN
    IF x_msg_count >= 1 THEN
    FOR i IN 1 .. x_msg_count LOOP
    IF l_error_reason IS NULL THEN
    l_error_reason :=
    l_error_reason
    || ','
    || SUBSTR (fnd_msg_pub.get (p_encoded => fnd_api.g_false)
    , 1
    , 255
    || SQLERRM;
    ELSE
    l_error_reason :=
    l_error_reason
    || ','
    || SUBSTR (fnd_msg_pub.get (p_encoded => fnd_api.g_false)
    , 1
    , 255
    || SQLERRM;
    END IF;
    --DBMS_OUTPUT.put_line ('Supplier Site API Error-' || l_error_reason);
    fnd_file.put_line (fnd_file.LOG
    , 'Supplier Site API Error-' || l_error_reason
    END LOOP;
    END IF;
    ELSIF x_return_status='S' THEN
    --DBMS_OUTPUT.put_line ('Supplier Site API Success-' || l_error_reason);
    fnd_file.put_line (fnd_file.LOG
    , 'Supplier Site API Success-' || l_error_reason
    END IF;
    END LOOP;
    COMMIT;
    EXCEPTION
    WHEN OTHERS THEN
    --DBMS_OUTPUT.put_line ('Error-' || SQLERRM);
    fnd_file.put_line (fnd_file.LOG
    , 'Error-' || SQLERRM
    END xx_vat_wo172304;
    END xx_wo172304_test;

    Hi,
    I'm unable to update the vat code column of the ap_supplier_sites_all table using the ap_vendor_pub_pkg.update_vendor_site API.Oracle application instance 12.1.3 and OS linux.Please find the code below.I'm able to update other feilds,but not the vat_code.Please help on this.
    Thanks,
    Abhilash
    CREATE OR REPLACE PACKAGE BODY APPS.xx_wo172304_test
    AS
    PROCEDURE xx_vat_wo172304 (
    errbuf OUT VARCHAR2
    , retcode OUT VARCHAR2
    IS
    CURSOR cur_vat
    IS
    SELECT site.*
    FROM apps.ap_suppliers supp, apps.ap_supplier_sites_all site
    WHERE site.vat_code IN
    ('CZ OEUS 20', 'CZ OEUZ 20', 'CZ OJCD 20', 'CZ OT20', 'CZ-20-EDC', 'OEUS20', 'OEUZ20', 'OPP20E'
    , 'OS20', 'OT20')
    AND supp.vendor_id = site.vendor_id
    AND site.org_id IN (608, 1508, 2396, 2397)
    AND site.vendor_site_id =68154;
    l_vendor_site_rec ap_vendor_pub_pkg.r_vendor_site_rec_type;
    l_vat_code ap_supplier_sites_all.VAT_CODE%TYPE;
    l_vendor_site_id ap_supplier_sites_all.vendor_site_id%TYPE;
    x_return_status VARCHAR2 (100) := NULL;
    x_msg_data VARCHAR2 (1000) := NULL;
    x_msg_count NUMBER := NULL;
    l_error_reason VARCHAR2 (2000) := NULL;
    l_user_id           number := FND_GLOBAL.USER_ID;
    l_last_update_login           number := FND_GLOBAL.LOGIN_ID;
    l_program_application_id           number := FND_GLOBAL.prog_appl_id;
    l_program_id           number := FND_GLOBAL.conc_program_id;
    l_request_id           number := FND_GLOBAL.conc_request_id;
    BEGIN
    -- mo_global.init ('SQLAP');
    FOR rec_vat IN cur_vat LOOP
    IF rec_vat.org_id = 608 THEN
    IF rec_vat.vat_code = 'OEUS20' THEN
    l_vendor_site_rec.vat_code := 'CZ OEUS21';
    ELSIF rec_vat.vat_code = 'OEUZ20' THEN
    l_vendor_site_rec.vat_code := 'CZ OEUZ21';
    ELSIF rec_vat.vat_code = 'OPP20E' THEN
    l_vendor_site_rec.vat_code := 'CZ OPP21E';
    ELSIF rec_vat.vat_code = 'OS20' THEN
    l_vendor_site_rec.vat_code := 'CZ OS21';
    ELSIF rec_vat.vat_code = 'OT20' THEN
    l_vendor_site_rec.vat_code := 'CZ OS21';
    END IF;
    ELSIF rec_vat.org_id = 1508 THEN
    IF rec_vat.vat_code = 'CZ OJCD 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OJCD21';
    ELSIF rec_vat.vat_code = 'CZ OEUS 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OEUS21';
    ELSIF rec_vat.vat_code = 'CZ OEUZ 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OEUZ21';
    ELSIF rec_vat.vat_code = 'CZ OT20' THEN
    l_vendor_site_rec.vat_code := 'CZ OT21';
    END IF;
    ELSIF rec_vat.org_id = 2396 THEN
    IF rec_vat.vat_code = 'CZ OEUZ 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OEUZ 21';
    ELSIF rec_vat.vat_code = 'CZ OJCD 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OJCD 21';
    ELSIF rec_vat.vat_code = 'CZ OT20' THEN
    l_vendor_site_rec.vat_code := 'CZ OT21';
    ELSIF rec_vat.vat_code = 'CZ-20-EDC' THEN
    l_vendor_site_rec.vat_code := 'CZ-21-EDC';
    END IF;
    ELSIF rec_vat.org_id = 2397 THEN
    IF rec_vat.vat_code = 'CZ OEUS 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OEUS 21';
    ELSIF rec_vat.vat_code = 'CZ OEUZ 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OEUZ 21';
    ELSIF rec_vat.vat_code = 'CZ OJCD 20' THEN
    l_vendor_site_rec.vat_code := 'CZ OJCD 21';
    ELSIF rec_vat.vat_code = 'CZ OT20' THEN
    l_vendor_site_rec.vat_code := 'CZ OT21';
    ELSIF rec_vat.vat_code = 'CZ-20-EDC' THEN
    l_vendor_site_rec.vat_code := 'CZ-21-EDC';
    END IF;
    END IF;
    l_vendor_site_id := rec_vat.vendor_site_id;
    l_vendor_site_rec.org_id := rec_vat.org_id;
    l_vendor_site_rec.vendor_id := rec_vat.vendor_id;
    --l_vendor_site_rec.vendor_site_code:='318581-MOR. KRU';
    l_vendor_site_rec.rfq_only_site_flag := 'Y';
    -- l_vendor_site_rec.last_update_date := SYSDATE;
    l_vendor_site_rec.last_updated_by := 1134;   MARTIN.ROUNDS
    -- DBMS_OUTPUT.put_line ('VAT CODE:' || l_vendor_site_rec.vat_code);
    --DBMS_OUTPUT.put_line ('Vendor Site Id:' || l_vendor_site_id);
    fnd_file.put_line (fnd_file.LOG
    , 'VAT CODE:' || l_vendor_site_rec.vat_code
    fnd_file.put_line (fnd_file.LOG
    , 'Vendor ID:' || rec_vat.vendor_id
    fnd_file.put_line (fnd_file.LOG
    , 'Vendor Site Id:' || l_vendor_site_id
    fnd_file.put_line (fnd_file.LOG
    , 'RFQ ONLY SITE FLAG:' || l_vendor_site_rec.rfq_only_site_flag
    ap_vendor_pub_pkg.update_vendor_site (p_api_version => 1
    , x_return_status => x_return_status
    , x_msg_count => x_msg_count
    , x_msg_data => x_msg_data
    , p_vendor_site_rec => l_vendor_site_rec
    , p_vendor_site_id => l_vendor_site_id
    ); --p_calling_prog     IN  VARCHAR2 DEFAULT 'NOT ISETUP'
    -- pos_vendor_pub_pkg.update_vendor_site (p_vendor_site_rec => l_vendor_site_rec
    -- , x_return_status => x_return_status
    -- , x_msg_count => x_msg_count
    -- , x_msg_data => x_msg_data
    --     ap_vendor_sites_pkg.update_row(
    --          p_vendor_site_rec => l_vendor_site_rec,
    --          p_last_update_date => sysdate,
    --          p_last_updated_by => l_user_id,
    --          p_last_update_login => l_last_update_login,
    --          p_request_id => l_request_id ,
    --          p_program_application_id => l_program_application_id,
    --          p_program_id => l_program_id,
    --          p_program_update_date => sysdate,
    --          p_vendor_site_id => l_vendor_site_id);
    fnd_file.put_line (fnd_file.LOG
    , 'Return Status:' || x_return_status
    IF x_return_status <> fnd_api.g_ret_sts_success THEN
    IF x_msg_count >= 1 THEN
    FOR i IN 1 .. x_msg_count LOOP
    IF l_error_reason IS NULL THEN
    l_error_reason :=
    l_error_reason
    || ','
    || SUBSTR (fnd_msg_pub.get (p_encoded => fnd_api.g_false)
    , 1
    , 255
    || SQLERRM;
    ELSE
    l_error_reason :=
    l_error_reason
    || ','
    || SUBSTR (fnd_msg_pub.get (p_encoded => fnd_api.g_false)
    , 1
    , 255
    || SQLERRM;
    END IF;
    --DBMS_OUTPUT.put_line ('Supplier Site API Error-' || l_error_reason);
    fnd_file.put_line (fnd_file.LOG
    , 'Supplier Site API Error-' || l_error_reason
    END LOOP;
    END IF;
    ELSIF x_return_status='S' THEN
    --DBMS_OUTPUT.put_line ('Supplier Site API Success-' || l_error_reason);
    fnd_file.put_line (fnd_file.LOG
    , 'Supplier Site API Success-' || l_error_reason
    END IF;
    END LOOP;
    COMMIT;
    EXCEPTION
    WHEN OTHERS THEN
    --DBMS_OUTPUT.put_line ('Error-' || SQLERRM);
    fnd_file.put_line (fnd_file.LOG
    , 'Error-' || SQLERRM
    END xx_vat_wo172304;
    END xx_wo172304_test;

  • Unable to Update Collection from Tabular Form

    I have built several Tabular Forms where I have updated the apex_collection with the data entered into the form. Then I loop thru the collection and update the database.
    I now Copy a working form to create a new form using data from a different table. All I am doing is changing the underly apec_collection with a different select statement and give it a new collection name. The number of columns on the tabular form are the same as the working form.
    Now I run the form and I get ORA-01403: no data found Error UNABLE to UPDATE ROWS
    It is acting like it is not finding any data from the collection. But I put in the same selection critera for the update into a report below the tabular form and I see data just fine.
    Here is the code I am using to update the collection when the SAVE button is pressed (Process on Submit before Calculations).
    begin
    for c1 in (
    select seq_id from apex_collections
    where collection_name = 'IPR_MATRIX' and c001 = :P21_FACILITY
    and c002 = :P21_DEPT
    order by seq_id) loop
    c := c+1;
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>5,p_attr_value=>wwv_flow.g_f01(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>6,p_attr_value=>wwv_flow.g_f02(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>7,p_attr_value=>wwv_flow.g_f03(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>8,p_attr_value=>wwv_flow.g_f04(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>9,p_attr_value=>wwv_flow.g_f05(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>10,p_attr_value=>wwv_flow.g_f06(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>11,p_attr_value=>wwv_flow.g_f07(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>12,p_attr_value=>wwv_flow.g_f08(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>13,p_attr_value=>wwv_flow.g_f09(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>14,p_attr_value=>wwv_flow.g_f10(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>15,p_attr_value=>wwv_flow.g_f11(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>16,p_attr_value=>wwv_flow.g_f12(c));
    end loop;
    end;
    Any Ideas what I am doing wrong?

    c is set to 0
    It looks like I may have found my problem.
    There tabular form is limited by a where clause in the report to a subset of the collection. Making the collection match the same where clause seems to have fixed my problem.
    Not clear on why that works like that but it looks like I may have it working.

  • Cursor and Update rows based on value/date

    SQL Server 2012
    Microsoft SQL Server Management Studio
    11.0.3128.0
    Microsoft Analysis Services Client Tools
    11.0.3128.0
    Microsoft Data Access Components (MDAC)
    6.1.7601.17514
    Microsoft MSXML 3.0 4.0 5.0 6.0 
    Microsoft Internet Explorer
    9.11.9600.16518
    Microsoft .NET Framework
    4.0.30319.18408
    Operating System
    6.1.7601
    The objective of this is to test the Cursor and use it on a production environment after this is fixed. What I would like to do is update rows in a column i duplicated originally called 'HiredDate' from AdventureWorks2012 HumanResources.Employee table. I
    made a duplicate column called 'DateToChange' and would like to change it based on a date I have picked, which returns normally 2 results (i.e. date is '04/07/2003'). The code runs but will not change both dates. It did run however with an error but changed
    only 1 of the 2 rows because it said ['nothing available in next fetch'].
    The code to add the columns and perform the query to get the results I am running this against:
    -- ADD column 'DateToChange'
    ALTER TABLE [HumanResources].[Employee] ADD DateToChange Date NOT NULL;
    -- Copy 'HireDate' data to 'DateToChange'
    UPDATE HumanResources.Employee SET DateToChange = HireDate;
    -- Change 'DateToChange' to NOT NULL
    ALTER TABLE [HumanResources].[Employee] ALTER COLUMN DateToChange Date NOT NULL;
    SELECT BusinessEntityID,HireDate, CONVERT( char(10),[DateToChange],101) AS [Formatted Hire Date]
    FROM HumanResources.Employee
    WHERE [DateToChange] = '04/07/2003';
    Code:
    USE AdventureWorks2012;
    GO
    -- Holds output of the CURSOR
    DECLARE @EmployeeID INT
    DECLARE @HiredDate DATETIME
    DECLARE @HiredModified DATETIME
    DECLARE @ChangeDateTo DATETIME
    --Declare cursor
    -- SCROLL CURSOR ALLOWS "for extra options" to pul multiple records: i.e. PRIOR, ABSOLUTE ##, RELATIVE ##
    DECLARE TestCursor CURSOR SCROLL FOR
    -- SELECT statement of what records going to be used by CURSOR
    -- Assign the query to the cursor.
    SELECT /*HumanResources.Employee.BusinessEntityID, HumanResources.Employee.HireDate,*/ CONVERT( char(10),[DateToChange],101) AS [Formatted Hire Date]
    FROM HumanResources.Employee
    WHERE DateToChange = '01/01/1901'
    /*ORDER BY HireDate DESC*/ FOR UPDATE OF [DateToChange];
    -- Initiate CURSOR and load records
    OPEN TestCursor
    -- Get first row from query
    FETCH NEXT FROM TestCursor
    INTO @HiredModified
    -- Logic to tell the Cursor while "@@FETCH_STATUS" 0 the cursor has successfully fetched the next record.
    WHILE (@@FETCH_STATUS = 0 AND @@CURSOR_ROWS = -1)
    BEGIN
    FETCH NEXT FROM TestCursor
    IF (@HiredModified = '04/07/2003')/*05/18/2006*/
    -- Sets @HiredModifiedDate data to use for the change
    SELECT @ChangeDateTo = '01/01/1901'
    UPDATE HumanResources.Employee
    SET [DateToChange] = @ChangeDateTo --'01/01/1901'
    FROM HumanResources.Employee
    WHERE CURRENT OF TestCursor;
    END
    -- CLOSE CURSOR
    CLOSE TestCursor;
    -- Remove any references held by cursor
    DEALLOCATE TestCursor;
    GO
    This query is run successfully but it does not produce the desired results to change the dates
    04/07/2003 to 01/01/1901.
    I would like the query to essentially be able to run the initial select statement, and then update and iterate through the returned results while replacing the necessary column in each row.
    I am also open to changes or a different design all together. 
    For this query I need:
    1. To narrow the initial set of information
    2. Check if the information returned, in particular a date, is before [i.e. this current month minus 12 months or
    12 months before current month]
    3. Next replace the dates with the needed date
    [Haven't written this out yet but it will need to be done]
    4. After all this is done I will then need to update a column on each row:
    if the 'date' is within 12 months to 12 months from the date checked
    NOTE: I am new to TSQL and have only been doing this for a few days, but I will understand or read up on what is explained if given enough information. Thank you in advance for anyone who may be able to help.

    The first thing you need to do is forget about cursors.  Those are rarely needed.  Instead you need to learn the basics of the tsql language and how to work with data in sets.  For starters, your looping logic is incorrect.  You open
    the cursur and immediately fetch the first row.  You enter the loop and the first thing in the loop does what?  Fetches another row.  That means you have "lost" the values from the first row fetched.  You also do not test the success of
    that fetch but immediately try to use the fetched value.  In addition, your cursor includes the condition "DateToChange = '01/01/1901' " - by extension you only select rows where HireDate is Jan 1 1901.  So the value fetched into @HiredModified will
    never be anything different - it will always be Jan 1 1901.  The IF logic inside your loop will always evaluate to FALSE.  
    But forget all that.  In words, tell us what you are trying to do.  It seems that you intend to add a new column to a table - one that is not null (ultimately) and is set to a particular value based on some criteria.  Since you intend the
    column to be not null, it is simpler to just add the column as not null with a default.  Because you are adding the column, the assumption is that you need to set the appropriate value for EVERY row in the table so the actual default value can be anything.
     Given the bogosity of the 1/1/1901 value, why not use this as your default and then set the column based on the Hiredate afterwards.  Simply follow the alter table statement with an update statement.  I don't really understand what your logic
    or goal is, but perhaps that will come with a better description.  In short: 
    alter table xxx add DateToChange date default '19010101'
    update xxx set DateToChange = HireDate where [some unclear condition]
    Lastly, you should consider wrapping everything you do in a transaction so that you recover from any errors.  In a production system, you should consider making a backup immediately before you do anything - strongly consider and have a good reason not
    to do so if that is your choice (and have a recovery plan just in case). 

  • Unable to delete rows from Target.

    Hello everyone,
    I am unable to delete rows from target data store. Here is what I have done.
    Source Oracle 10g - staging 11g - Target Oracle 11g
    I have implemented consistent set CDC on data model in staging and added 2 tables to CDC and turned on the journals . Both tables A and B are joined together via Column E (primary key of table A). Table A is the master table(has foreign key). Table B is child table. Target column consists of all the columns of both table A and B.
    Following is what I am able to do and not to do
    ABLE TO DO. If data is inserted into both or any of journalized tables I can successfully load the same in target by performing following steps. 1. Extend the consistency window at model level. Lock subscriber. Run the interface with any source table marked as Journalized data only. Unlock subscriber and purge journal.
    ABLE TO DO. If data is updated in any of the journalized table, along with the steps mentioned above I can execute two interfaces. In one Interface table A marked as journalized data only Joined with table B and in second interface table B marked as Journalized data only joined to table a.
    NOT ABLE TO DO If data is deleted from one or both tables it shows up as journalized data in JV$D<tablename> marked as D with date and subscriber name but when i run the interface by extending the window , locking subscriber executing both interfaces, unlock subscriber purge journals. no change takes place is Target. After unlocking subscriber step, journalized data gets removed from JV$D view. Please let me know what I am doing wrong here. How can rows delted from source can also be deleted from TARGET?
    NOTE : In the flow table SYNC_JRNL_DELETES is YES
    In moel under jounalized table tab Table have following order Table A folloed by Table B
    Thanks in advance
    Greenwich

    Sorry I still do not get it. when you say "Its a legacy app", are you talking about the VB.NET app ?
    If so then I repeat my self :-) Why not to connecting to the SQL server directly?
    * even if you need information from several databases (for example ACCESS + SQL Server), in most cases, it is much better to connect directly and get each information to the app. Then in your app you can combine the information and analyse it
    [Personal Site] [Blog] [Facebook]
    Access app is the legacy app. 

  • Unable to update Logical Delete field in AS400

    hi all,
    We have an ESB process that polls for data in AS400 DB and transfers this data into an Oracle DB. This polling is based on Logical Delete. The data transferred is in the range of some lakhs of records. So we are sending around 5000 records per transaction in ESB. When we deploy the process, the data in AS400 is being read and getting transferred. However, the status field is not changing to 'Read Value'. Due to this, we are facing a lot of issues like, when we're in middle of data transfer and the opmn restarts, the data which has already been transferred is also being read and this is throwing an error because of primary constraint violation. Even after the data transfer, if we delete any rows in Oracle DB, the data transfer resumes as the status field is not updated.
    I have worked with logical delete in Oracle DB before and was working fine.
    Please help me with Logical Delete functionality in case of AS400 Database and also please let me know the privilages we need to have on the AS400 DB to successfully run this process.
    Thanks,
    Kamal.

    Hi,
    According to your post, my understanding is that you was unable to update managed metadata field in designer workflow.
    You need to provide the exact string for the MMS value, in the form of <id>;<value>.
    The format of the value you wanted to set is uncorrectly, so you cannot update the managed metadata field.
    If you want to set the managed metadata field value with correct format, you’d better to create custom action.
    There is an article for your reference, although it is about the SharePoint 2010, it is similar to SharePoint 2013.
    http://patrickboom.wordpress.com/2013/07/23/workflow-activity-set-managed-metadata-column/
    Best Regards,
    Linda Li
    Linda Li
    TechNet Community Support

  • Unable to update when executed, table gets lock Execution does not stop Execution even for an hour

    Following is my Query unable to update when Executed table gets lock Execution does not stop even for an hour.
    update Employees 
          set Status = 'Close'
          where statusid IN (select statusid 
                                             from MyView 
                                              where DownloadedDate ='2014-07-27 00:00:00.000'
    here Employee contains 3,00,000 of records and Subquery return 1,50,000 Empid 
    i tried in various ways but not able to solve, statusid  column have no index on,  i tried using cursor but it does not work.
    plz let me know how to solve this Issue, THANKS IN ADVANCE.

    Hello,
    You should better post your question to a more related Forum, like Transact-SQL or SQL Server Database Engine; this Forum is for samples & community Projects.
    Have you checked the execution plan if indexes are used?
    You could update the data in chunks, e.g. 10.000 rows per execution. For this you have to add a TOP clause and a filter to update only those, who are not updated yet.
    update TOP (10000) Employees
    set Status = 'Close'
    where statusid IN
    (select statusid
    from MyView
    where DownloadedDate ='2014-07-27 00:00:00.000')
    AND Status <> 'Close'
    Olaf Helper
    [ Blog] [ Xing] [ MVP]

  • How can i update rows  in a table based on a match from a select query

    Hello
    How can i update rows in a table based on a match from a select query fron two other tables with a update using sqlplus ?
    Thanks Glenn
    table1
    attribute1 varchar2 (10)
    attribute2 varchar2 (10)
    processed varchar2 (10)
    table2
    attribute1 varchar2 (10)
    table3
    attribute2 varchar2 (10)
    An example:
    set table1.processed = "Y"
    where (table1.attribute1 = table2.attribute1)
    and (table1.attribute2 = table3.attribute2)

    Hi,
    Etbin wrote:
    Hi, Frank
    taking nulls into account, what if some attributes are null ;) then the query should look like
    NOT TESTED !
    update table1 t1
    set processed = 'Y'
    where exists(select null
    from table2
    where lnnvl(attribute1 != t1.attribute1)
    and exists(select null
    from table3
    where lnnvl(attribute2 != t1.attribute2)
    and processed != 'Y'Regards
    EtbinYes, you could do that. OP specifically requested something else:
    wgdoig wrote:
    set table1.processed = "Y"
    where (table1.attribute1 = table2.attribute1)
    and (table1.attribute2 = table3.attribute2)This WHERE clause won't be TRUE if any of the 4 attribute columns are NULL. It's debatable about what should be done when those columns are NULL.
    But there is no argument about what needs to be done when processed is NULL.
    OP didn't specifically say that the UPDATEshould or shouldn't be done on rows where processed was already 'Y'. You (quite rightly) introduced a condition that would prevent redo from being generated and triggers from firing unnecessarily; I'm just saying that we have to be careful that the same condition doesn't keep the row from being UPDATEd when it is necessary.

  • How to find newly updated rows in a table

    Hi..
    How to know newly updated rows in a table.
    Thanks in advance
    pal

    Or other good thing would be to add LAST_UPDATED column to your table, that can reflect the time the row gets updated.
    G

  • Unable to update, when executed table gets lock and Execution does not stop even for an hour.

    Following is my Query, which unables to update. When Executed, table gets lock and Execution does not stop even for an hour.
    update Employees 
          set Status = 'Close'
          where statusid IN (select statusid 
                                             from MyView 
                                              where DownloadedDate ='2014-07-27 00:00:00.000'
    here Employee contains 3,00,000 of records and Subquery return 1,50,000 Empid 
    i tried in various ways but not able to solve, statusid  column have no index on,  i tried using cursor but it does not work.
    plz let me know how to solve this Issue, Its very Important to get solve as all my further work depends on Updation
    , THANKS IN ADVANCE.

    See also your other thread with the same question:
    http://social.msdn.microsoft.com/Forums/en-US/80243625-fc3b-4ee1-bce1-4adcdbc16c14/unable-to-update-when-executed-table-gets-lock-execution-does-not-stop-execution-even-for-an-hour?forum=sqlserversamples
    Olaf Helper
    [ Blog] [ Xing] [ MVP]

  • Disallow updates on a single column

    I have a table activity log, which contains the columns user_id , old_data , created_date .
    Now I want to impose a restriction on this table, so that all updates on 1st and 2nd columns are allowed but the update on the last column must not be allowed. A record having values for all the three columns will be inserted. However, subsequent updations to the last column must be strictly stopped. First two columns can be updated.
    How to achieve this ?
    I googled for some time but could not find a solution. Please help me. Thanks in advance.
    Edited by: user11093427 on Jun 18, 2009 8:11 AM

    Hello,
    YOu can create trigger specially when you update the column and raise an application error. You can test following trigger with different scnearios
    CREATE OR REPLACE TRIGGER trg_col
       BEFORE UPDATE OF SALARY
       ON EMP
       REFERENCING NEW AS New OLD AS Old
       FOR EACH ROW
    DECLARE
    BEGIN
       CASE
          WHEN UPDATING
          THEN
             raise_application_error (-20005,
                                      'Column update not allowed ' || :new.sal);
       END CASE;
    EXCEPTION
       WHEN OTHERS
       THEN
          -- Consider logging the error and then re-raise
          RAISE;
    END trg_col;Regards
    OrionNet
    Edited by: OrionNet on Jun 18, 2009 9:51 PM

  • Update Rows with info from other Rows in Same Table.

    I'm trying to update rows with information from the same table. The table gets loaded with info from a report that runs and it has to be a new entry every month but I would like to carry over some of the info from last month. This statement below runs but updates all rows in the new table load and in my test cases I only made a few match so only like 5 records should get updated. This is an example of what I'm trying to do. If I add this(C2.COL_INVC_ID = C1.COL_INVC_ID) to the last "*Where*" statement I get an invalid identifier for "C2.COL_INVC_ID". So what am I doing wrong here??? How can I update only the rows that where also in last months run???
    Thanks in advance for any help!
    Update OpenIssues OI1
    Set(OI1.Num, OI1.Status, OI1.Code, OI1.LastModifiedDate) =
    (Select OI2.Num, OI2.Status, OI2.Code, OI2.LastModifiedDate
    From OpenIssues OI2
    Where OI2.num = OI1.num and OI2.TableLoadDate = TO_DATE('01/31/2012 00:00:00', 'MM/DD/YYYY HH24:MI:SS')
    Where and OI1.TableLoadDate = TO_DATE('02/29/2012 00:00:00', 'MM/DD/YYYY HH24:MI:SS')
    SQLMe

    Hi,
    Welcome to the forum!
    SQLMe wrote:
    I'm trying to update rows with information from the same table. The table gets loaded with info from a report that runs and it has to be a new entry every month but I would like to carry over some of the info from last month. This statement below runs but updates all rows in the new table load and in my test cases I only made a few match so only like 5 records should get updated. This is an example of what I'm trying to do. If I add this(C2.COL_INVC_ID = C1.COL_INVC_ID) to the last "*Where*" statement I get an invalid identifier for "C2.COL_INVC_ID". If the aliases c1 and c2 aren't defined anywhere, then you can't use them anywhere.
    The WHERE clause of the UPDATE statement can only reference the table being updated, ot1 in this case.
    So what am I doing wrong here??? How can I update only the rows that where also in last months run???
    Thanks in advance for any help!
    Update OpenIssues OI1
    Set(OI1.Num, OI1.Status, OI1.Code, OI1.LastModifiedDate) =
    (Select OI2.Num, OI2.Status, OI2.Code, OI2.LastModifiedDate
    From OpenIssues OI2
    Where OI2.num = OI1.num and OI2.TableLoadDate = TO_DATE('01/31/2012 00:00:00', 'MM/DD/YYYY HH24:MI:SS')
    Where and OI1.TableLoadDate = TO_DATE('02/29/2012 00:00:00', 'MM/DD/YYYY HH24:MI:SS')
    ------------There's a syntax error in the last line. Either something got lost when you posted the code, or you just don't want the keyword AND. You certainly don't want AND immediately after WHERE.
    In general, if it's not obvious how to do an UPDATE, then UPDATE is the wrong tool: you want MERGE instead.
    Whenever you have a problem, please post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) from all tables involved.
    Also post the results you want from that data, and an explanation of how you get those results from that data, with specific examples.
    Simplify the problem as much as possible. Remove all tables and columns that play no role in this problem.
    If you're asking about a DML statement, such as UPDATE, the CREATE TABLE and INSERT statements should re-create the tables as they are before the DML, and the results will be the contents of the changed table(s) when everything is finished.
    Always say which version of Oracle you're using.
    See the forum FAQ {message:id=9360002}

  • Performance of update query for single column vs multiple column

    Hi All,
    I could not find any answer for this, does it ever matter in terms of performance updating single column versus multiple column in a single update query.
    For eg. table consisting of 15 columns, what would be the difference in performance when one column is update in the single query against another update query where 15 columns are updated.
    Please do keep in mind my table columns in actually could be around 150+.
    Thanks for any information provided.

    If updated columns aren´t on where clause , then the only impact of 15 columns will be a increase on redo generation, and a possible chainning row.
    So since the redo is one of the things that have a large impact, the answer is yes.
    The performance will be slower.
    Regards
    Helio Dias.
    http://heliodias.com
    OCE SQL, OCP 9i

  • How to find  latest updating row in a table

    Hi
    How to find latest updating row in a table

    ADF 7 wrote:
    SELECT *  FROM Table WHERE lastupdTimestamp = (SELECT MAX(lastupdTimestamp) FROM Table)lastupdtimestamp - holds and date an time of an records when it last updation takes place in table.
    lastupdtimestamp is a column in my table.And how will this make sense in the scenario I've described, where UserA does an update before UserB, but commits the update after UserB's commited update? And add UserC and UserD and a 1000 more users to this scenario where concurrent updates happen.
    What actual time does this lastupdtimestamp contain and represent? And why? How is that lastupdtimestamp used in business logic and processing? Or is it just a silly-bugger-let's-add-somekind-of-time column to that table that essentially meaningless?
    Not saying that one should never add such a timestamp based column. Simply that one needs to understand WHAT it contains and it needs to be SENSIBLY used within the data model.
    However, in my experience such columns are often slapped on afterwards, never featured in the actual data model designed, and is then used without a second though that the database and its data is a multi-user and multi-process system. And things happen at the same time. And things overlap (serialisation is the exception - not the rule).

Maybe you are looking for

  • Cant get CreativeSuite CS4 working anymore!

    I have used CreativeSuite for years now. Had CS4 nd updated it to CS5 afterwards. Licencerecovery didn't work out, so is there anything to do? Please help, my clients are waiting materials.

  • ALV edit not capturing new value

    Hi In my alv i have made one field as editable..when i edit the field and click save button the control comes to below code.  CALL METHOD gro_grid->get_selected_rows     IMPORTING       et_index_rows = gwa_selected_rows. *Through the index capturing

  • Detailed aged debtors query

    Hi All I am trying to create a detailed aged debtors report for all unreconciled transactions.  I have started the query but it does not seem to want to work correctly.  It returns all transactions, regardless if reconciles or not. Any help will be a

  • HR master data transfer ( Insert & Update Mode )

    Hi All, First Concern: I am using Idoc to transfer HR Master data from SAP to a third party application am using message type HRMD_A and basic type HRMD_06.To transfer delta changes i have configured change pointer. I am using the report RHALESMD to

  • How do I switch to one of my other backups?

    How do I switch to one of my other backups?