Files
doczyai-pipelines/snowflake/PROD/R__2001_LOG_AUDIT.sql
T
2024-06-28 17:13:28 -05:00

29 lines
958 B
SQL

CREATE OR REPLACE PROCEDURE STG.LOG_AUDIT("PROC_NAME" VARCHAR(255), "SUB_SECTION_NAME" VARCHAR(255), "AUDIT_SID" FLOAT, "ACTION_FLAG" VARCHAR(255))
RETURNS VARCHAR(16777216)
LANGUAGE SQL
EXECUTE AS CALLER
AS
'
BEGIN
BEGIN TRANSACTION;
IF (:ACTION_FLAG = ''START'') THEN
INSERT INTO STG.LOG_AUDIT (EXECUTION_DT, START_DT, PROCEDURE_NAME, SUB_SECTION_NAME, AUDIT_SID)
VALUES (CURRENT_DATE(), CURRENT_TIMESTAMP(), :PROC_NAME, :SUB_SECTION_NAME, :AUDIT_SID);
END IF;
IF (:ACTION_FLAG = ''END'') THEN
UPDATE STG.LOG_AUDIT
SET QUERY_ID = LAST_QUERY_ID(-2), END_DT = CURRENT_TIMESTAMP(), TOTAL_MIN = DATEDIFF(Minute, START_DT, CURRENT_TIMESTAMP())
WHERE PROCEDURE_NAME = :PROC_NAME AND SUB_SECTION_NAME = :SUB_SECTION_NAME AND AUDIT_SID = :AUDIT_SID AND END_DT IS NULL;
ELSE
COMMIT;
RETURN ''Incorrect Action Flag Used'';
END IF;
COMMIT;
RETURN ''Completed'';
END;'
;