Home     |     Java    |     Php General    |     Oracle Database    |     Oracle Server  

MS Dynamics CRM 3.0

  •  Setting up and Configuring Microsoft Dynamics CRM 3.0
  •  Managing Security and Information Access
  •  Entity Customization: Concepts and Attributes
  •  Entity Customization: Forms and Views
  •  Entity Customization: Relationships, Custom Entities, and Site Map
  •  Reporting and Analysis
  •  Workflow
  •  Server-Side SDK
  •  Client-Side SDK
  •  Integration with External Applications
  • Cervo Technologies
    The Right Source to Outsource

    Sharepoint Portal Server KB

    Microsoft CRM Info

    WPF Interview Questions

    SilverLight Interview Qs

    Asp.Net 2.0 Interview Qs

    Asp.NET 1.1 FAQs

    Oracle Interview Questions

    SAP Interview Questions

    Oracle Database

    Merge - ora-00904 - Invalid Identifier.


    Hi Folks, I'm pretty new no Oracle and SQL and have been trying to
    learn as I go. Can someone please help?
    I have to "UPSERT" tables on a monthly basis from text files from a
    data supplier.

    I plan to replace each text file into staging table, Create a trigger
    on the staging table to "MERGE" the data onto a final table. I have
    had to do it this way as sqlldr will not alllow merge.

    I've been trying to get the merge working on it's own before inclusion
    in a trigger but am getting ORA-00904 - Invalid Identifier. I have
    checked and re-checked and cannot spot the error. Any clues anyone?

    MERGE INTO "LOAD_TEST_T"
    USING (SELECT * from "LOAD_TEST_IN")
    ON ("LOAD_TEST_T"."PZ"="LOAD_TEST_IN"."PZ")
    WHEN MATCHED THEN
    UPDATE
            SET "LOAD_TEST_T"."TEXT"="LOAD_TEST_IN"."TEXT"
    WHEN NOT MATCHED THEN
    INSERT
            ("LOAD_TEST_T"."PZ", "LOAD_TEST_T"."TEXT")
    VALUES
            ("LOAD_TEST_IN"."PZ", "LOAD_TEST_IN"."TEXT");

    I'll be extremely embarrassed if it's a typo.........

    robert.mcau@eurocarparts.com schrieb:

    Try it like this

    MERGE INTO "LOAD_TEST_T"
    USING (SELECT * from "LOAD_TEST_IN") LOAD_TEST_IN
    ON ("LOAD_TEST_T"."PZ"="LOAD_TEST_IN"."PZ")
    WHEN MATCHED THEN
    UPDATE
             SET "LOAD_TEST_T"."TEXT"="LOAD_TEST_IN"."TEXT"
    WHEN NOT MATCHED THEN
    INSERT
             ("LOAD_TEST_T"."PZ", "LOAD_TEST_T"."TEXT")
    VALUES
             ("LOAD_TEST_IN"."PZ", "LOAD_TEST_IN"."TEXT");

    or even more simply:

    MERGE INTO "LOAD_TEST_T"
    USING LOAD_TEST_IN
    ON ("LOAD_TEST_T"."PZ"="LOAD_TEST_IN"."PZ")
    WHEN MATCHED THEN
    UPDATE
             SET "LOAD_TEST_T"."TEXT"="LOAD_TEST_IN"."TEXT"
    WHEN NOT MATCHED THEN
    INSERT
             ("LOAD_TEST_T"."PZ", "LOAD_TEST_T"."TEXT")
    VALUES
             ("LOAD_TEST_IN"."PZ", "LOAD_TEST_IN"."TEXT");

    Best regards

    Maxim

    Add to del.icio.us | Digg this | Stumble it | Powered by Megasolutions Inc