1
CREATE OR REPLACE VIEW commerce_events_tempview
AS
SELECT
snowflake_loaded_timestamp AS SNOWPIPE_LOADED_TIMESTAMP,
snowflake_loaded_timestamp::VARCHAR as CIMBA_LOADEDTIMESTAMP,
    JSON:cimbaApiVersion::VARCHAR AS cimba_api_version,
    JSON:partnerApiVersion::VARCHAR AS cimba_partner_api_version,
    JSON:partnerApiMinorVersion::VARCHAR AS cimba_partner_api_minor_version,
    JSON:partnerName::VARCHAR AS cimba_partner_name,
    JSON:payloadName::VARCHAR AS cimba_payload_name,
    JSON:payloadPrimaryKeyName::VARCHAR AS cimba_payload_primary_key_name,
    JSON:payloadPrimaryKeyValue::VARCHAR AS cimba_payload_primary_key_value,
    TRY_TO_TIMESTAMP_NTZ(JSON:payloadDate::VARCHAR) AS cimba_payload_date,
    JSON:payload.eventId::VARCHAR AS eventid,
    JSON:payload.orderId::VARCHAR AS orderid,
    TRY_TO_TIMESTAMP_NTZ(JSON:payload.eventDate::VARCHAR) AS eventdate,
    JSON:payload.eventType::VARCHAR AS eventtype,
    JSON:payload.eventSourceId::VARCHAR AS eventsourceid,
    JSON:payload.merchantOrderId::VARCHAR AS merchantorderid,
    JSON:payload.fulfillerEventId::VARCHAR AS fulfillereventid,
    TRY_TO_BOOLEAN(JSON:payload.fake::VARCHAR) AS fake,
    JSON:payload.merchantId::VARCHAR AS merchantid,
    detailsgrp.VALUE:itemId::VARCHAR AS itemid,
    detailsgrp.VALUE:merchantItemId::VARCHAR AS merchantitemid,
    detailsgrp.VALUE:detail::VARCHAR AS detail,
    detailsgrp.VALUE:additionalData.description::VARCHAR AS description,
    detailsgrp.VALUE:additionalData.fulfillerId::VARCHAR AS fulfillerid,
    detailsgrp.VALUE:additionalData.globalFulfillerId::VARCHAR AS global_fulfiller_id,
    detailsgrp.VALUE:additionalData.fulfillerName::VARCHAR AS fulfillername,
    TRY_TO_NUMBER(detailsgrp.VALUE:additionalData.quantity::VARCHAR,18,4) AS quantity,
    TRY_TO_BOOLEAN(detailsgrp.VALUE:additionalData.costsIncurred::VARCHAR) AS costsincurred,
    detailsgrp.VALUE:additionalData.changeType::VARCHAR AS changetype,
    detailsgrp.VALUE:additionalData.changeRequestId::VARCHAR AS changerequestid,
    detailsgrp.VALUE:additionalData.changeRequestUri::VARCHAR AS changerequesturi,
    detailsgrp.VALUE:additionalData.status::VARCHAR AS status,
    detailsgrp.VALUE:additionalData.manufacturingReadyDataUrl::VARCHAR AS manufacturingreadydataurl,
    md5(detailsgrp.VALUE:additionalData.manufacturingReadyDataUrl::VARCHAR) AS manufacturingreadydataurl_hash,
    detailsgrp.VALUE:additionalData.errorDescription::VARCHAR AS errordescription,
    detailsgrp.VALUE:additionalData.additionalInfo::VARCHAR AS additionalinfo,
    detailsgrp.VALUE:additionalData.fulfillerOrderId::VARCHAR AS fulfillerorderid,
    detailsgrp.VALUE:additionalData.fulfillerItemId::VARCHAR AS fulfilleritemid,
    detailsgrp.VALUE:additionalData.fulfillerLocationId::VARCHAR AS fulfillerlocationid,
    detailsgrp.VALUE:additionalData.globalFulfillmentLocationId::VARCHAR AS global_fulfillment_location_id,
    detailsgrp.VALUE:additionalData.shipmentId::VARCHAR AS shipmentid,
    detailsgrp.VALUE:additionalData.carrierId::VARCHAR AS carrierid,
    detailsgrp.VALUE:additionalData.carrierServiceId::VARCHAR AS carrierserviceid,
    detailsgrp.VALUE:additionalData.trackingId::VARCHAR AS trackingid,
    detailsgrp.VALUE:additionalData.trackingUrl::VARCHAR AS trackingurl,
    md5(detailsgrp.VALUE:additionalData.trackingUrl::VARCHAR) AS trackingurl_hash,
    detailsgrp.VALUE:additionalData.carrierService::VARCHAR AS carrierservice,
    TRY_TO_TIMESTAMP_NTZ(detailsgrp.VALUE:additionalData.shipDateTime::VARCHAR) AS shipdatetime,
    detailsgrp.VALUE:additionalData.deliveryDetailsUrl::VARCHAR AS deliveryDetailsUrl,
    md5(detailsgrp.VALUE:additionalData.deliveryDetailsUrl::VARCHAR) AS deliveryDetailsUrl_hash,
      strtok_to_array(replace(detailsgrp.VALUE:additionalData, ), ',') AS additionaldata
FROM CIMPRESS.ORDERS.COMMERCE_EVENTS_RAW
    ,LATERAL FLATTEN(OUTER => TRUE, INPUT => JSON:payload.details) detailsgrp

The above code creates a column which has additionalData:

    [
      "{\"fulfillerId\":\"1\"",
      "\"globalFulfillerId\":\"xyz\"",
      "\"quantity\":100}"
    ]
  • I need to get rid of the escape characters that are there.
  • The result has extra characters that need to be removed.
  • I am trying to remove those extra characters like "{" as i need the result to contain only key value pairs inside the array.
James Z
  • 12,209
  • 10
  • 24
  • 44
  • 1
    That column that you are looking at seems to have more JSON field in it than you think it has. I suggest you turn this question into a [mre] with sample JSON input, and desired output. – Luuk Feb 28 '22 at 10:32

0 Answers0