CREATE PROCEDURE IF NOT EXISTS STG.LOAD_ATTEMPT_LOGS(file_name VARCHAR) RETURNS STRING LANGUAGE SQL EXECUTE AS CALLER AS $$ BEGIN -- Create or replace stage with dynamic file name EXECUTE IMMEDIATE 'CREATE OR REPLACE STAGE STG.ATTEMPT_LOGS_STAGE STORAGE_INTEGRATION = dev_bucket_integration URL = ''s3://doczy-dev-infra-raw-data-ingestion/training_interface/' || :file_name || ''' FILE_FORMAT = (FORMAT_NAME = ''STG.CSV_HEADER'');'; -- Copy command to load data COPY INTO STG.TRAINING_ATTEMPT_LOGS FROM ( SELECT NULLIF(TRIM($1), '') AS FIELD_NAME, NULLIF(TRIM($2), '') AS CONTRACTS_TESTED, NULLIF(TRIM($3), '') AS USERNAME, NULLIF(TRIM($4), '') AS DATE_TIME, NULLIF(TRIM($5), '') AS ACCURACY, NULLIF(TRIM($6), '') AS ATTEMPT_NUM, CURRENT_TIMESTAMP(2) AS LOAD_DT FROM @STG.ATTEMPT_LOGS_STAGE ) FILE_FORMAT = (FORMAT_NAME = 'STG.CSV_HEADER') ON_ERROR = CONTINUE; INSERT INTO DOCZY_DEV.STG.DIM_AUDIT (AUDIT_SID, TABLE_NAME, SOURCE_FILE_NAME, LOAD_DATE, SOURCE_COUNT) SELECT STG.AUDIT_SID.NEXTVAL, 'STG.TRAINING_ATTEMPT_LOGS',* FROM (SELECT DISTINCT METADATA$FILENAME, CURRENT_TIMESTAMP(), max(METADATA$FILE_ROW_NUMBER) from @DOCZY_DEV.STG.TRAINING_RESULTS_STAGE group by 1,2); RETURN 'Setup, Load, and Audit Complete'; END; $$;