Skip to main content

Data Target - Database

Example : Running a Merge Query in Oracle Database. 

Insert and Update at same time in ORDERS_TEST table

t is a alias for target table

s is a alias for source table

This will go inside the SQL Statment of Database Target

"""MERGE INTO ORDERS_TEST t
    USING (
        SELECT
            ? AS AMAZON_ORDER_ID,
            TO_DATE(?, 'YYYY-MM-DD') AS LAST_SHIP_DATE,
            ? AS ORDER_TYPE,
            TO_DATE(?, 'YYYY-MM-DD') AS PURCHASE_DATE,
            ? AS BUYER_EMAIL,
            TO_DATE(?, 'YYYY-MM-DD') AS AMZ_LAST_UPDATE_DATE,
            ? AS IS_REPLACEMENT_ORDER,
            ? AS NUM_ITEMS_SHIPPED,
            ? AS SHIPMENT_SERVICE_LEVEL,
            ? AS ORDER_STATUS,
            ? AS SALES_CHANNEL,
            ? AS IS_BUSINESS_ORDER,
            ? AS NUM_ITEMS_UNSHIPPED,
            ? AS GLOBAL_EXPRESS_ENABLED,
            ? AS IS_SOLDBY_AB,
            ? AS IS_PREMIUM_ORDER,
            ? AS ORDER_TOTAL_AMOUNT,
            ? AS ORDER_TOTAL_CURRENCY,
            TO_DATE(?, 'YYYY-MM-DD') AS EARLIEST_SHIP_DATE,
            ? AS MARKETPLACE_ID,
            ? AS FULFILLMENT_CHANNEL,
            ? AS PAYMENT_METHOD,
            ? AS SHIPPING_CITY,
            ? AS SHIPPING_POSTAL,
            ? AS SHIPPING_STATE,
            ? AS SHIPPING_COUNTRY,
            ? AS IS_ISPU,
            ? AS IS_PRIME,
            ? AS SELLER_ORDER_ID,
            ? AS SHIPMENT_SERVICE_CATEGORY,
            ? AS NEXTTOKEN
        FROM dual
    ) s
    ON (t.AMAZON_ORDER_ID = s.AMAZON_ORDER_ID)
    WHEN MATCHED THEN
        UPDATE SET
            t.LAST_SHIP_DATE = s.LAST_SHIP_DATE,
            t.ORDER_TYPE = s.ORDER_TYPE,
            t.PURCHASE_DATE = s.PURCHASE_DATE,
            t.BUYER_EMAIL = s.BUYER_EMAIL,
            t.AMZ_LAST_UPDATE_DATE = s.AMZ_LAST_UPDATE_DATE,
            t.IS_REPLACEMENT_ORDER = s.IS_REPLACEMENT_ORDER,
            t.NUM_ITEMS_SHIPPED = s.NUM_ITEMS_SHIPPED,
            t.SHIPMENT_SERVICE_LEVEL = s.SHIPMENT_SERVICE_LEVEL,
            t.ORDER_STATUS = s.ORDER_STATUS,
            t.SALES_CHANNEL = s.SALES_CHANNEL,
            t.IS_BUSINESS_ORDER = s.IS_BUSINESS_ORDER,
            t.NUM_ITEMS_UNSHIPPED = s.NUM_ITEMS_UNSHIPPED,
            t.GLOBAL_EXPRESS_ENABLED = s.GLOBAL_EXPRESS_ENABLED,
            t.IS_SOLDBY_AB = s.IS_SOLDBY_AB,
            t.IS_PREMIUM_ORDER = s.IS_PREMIUM_ORDER,
            t.ORDER_TOTAL_AMOUNT = s.ORDER_TOTAL_AMOUNT,
            t.ORDER_TOTAL_CURRENCY = s.ORDER_TOTAL_CURRENCY,
            t.EARLIEST_SHIP_DATE = s.EARLIEST_SHIP_DATE,
            t.MARKETPLACE_ID = s.MARKETPLACE_ID,
            t.FULFILLMENT_CHANNEL = s.FULFILLMENT_CHANNEL,
            t.PAYMENT_METHOD = s.PAYMENT_METHOD,
            t.SHIPPING_CITY = s.SHIPPING_CITY,
            t.SHIPPING_POSTAL = s.SHIPPING_POSTAL,
            t.SHIPPING_STATE = s.SHIPPING_STATE,
            t.SHIPPING_COUNTRY = s.SHIPPING_COUNTRY,
            t.IS_ISPU = s.IS_ISPU,
            t.IS_PRIME = s.IS_PRIME,
            t.SELLER_ORDER_ID = s.SELLER_ORDER_ID,
            t.SHIPMENT_SERVICE_CATEGORY = s.SHIPMENT_SERVICE_CATEGORY,
            t.NEXTTOKEN = s.NEXTTOKEN
    WHEN NOT MATCHED THEN
        INSERT (
            AMAZON_ORDER_ID,
            LAST_SHIP_DATE,
            ORDER_TYPE,
            PURCHASE_DATE,
            BUYER_EMAIL,
            AMZ_LAST_UPDATE_DATE,
            IS_REPLACEMENT_ORDER,
            NUM_ITEMS_SHIPPED,
            SHIPMENT_SERVICE_LEVEL,
            ORDER_STATUS,
            SALES_CHANNEL,
            IS_BUSINESS_ORDER,
            NUM_ITEMS_UNSHIPPED,
            GLOBAL_EXPRESS_ENABLED,
            IS_SOLDBY_AB,
            IS_PREMIUM_ORDER,
            ORDER_TOTAL_AMOUNT,
            ORDER_TOTAL_CURRENCY,
            EARLIEST_SHIP_DATE,
            MARKETPLACE_ID,
            FULFILLMENT_CHANNEL,
            PAYMENT_METHOD,
            SHIPPING_CITY,
            SHIPPING_POSTAL,
            SHIPPING_STATE,
            SHIPPING_COUNTRY,
            IS_ISPU,
            IS_PRIME,
            SELLER_ORDER_ID,
            SHIPMENT_SERVICE_CATEGORY,
            NEXTTOKEN
        ) VALUES (
            s.AMAZON_ORDER_ID,
            s.LAST_SHIP_DATE,
            s.ORDER_TYPE,
            s.PURCHASE_DATE,
            s.BUYER_EMAIL,
            s.AMZ_LAST_UPDATE_DATE,
            s.IS_REPLACEMENT_ORDER,
            s.NUM_ITEMS_SHIPPED,
            s.SHIPMENT_SERVICE_LEVEL,
            s.ORDER_STATUS,
            s.SALES_CHANNEL,
            s.IS_BUSINESS_ORDER,
            s.NUM_ITEMS_UNSHIPPED,
            s.GLOBAL_EXPRESS_ENABLED,
            s.IS_SOLDBY_AB,
            s.IS_PREMIUM_ORDER,
            s.ORDER_TOTAL_AMOUNT,
            s.ORDER_TOTAL_CURRENCY,
            s.EARLIEST_SHIP_DATE,
            s.MARKETPLACE_ID,
            s.FULFILLMENT_CHANNEL,
            s.PAYMENT_METHOD,
            s.SHIPPING_CITY,
            s.SHIPPING_POSTAL,
            s.SHIPPING_STATE,
            s.SHIPPING_COUNTRY,
            s.IS_ISPU,
            s.IS_PRIME,
            s.SELLER_ORDER_ID,
            s.SHIPMENT_SERVICE_CATEGORY,
            s.NEXTTOKEN
        )
    """