我正在處理一個存儲過程,該過程監視提供有關Extract Transform Load(ETL)
的信息的表中的Last_Extract_Ts
值。現在我想檢查Last_Extract_ts
值是否從最後一次運行過程開始改變,但我無法完全弄清楚如何存儲上次過程運行的結果,以便我可以在當前運行的結果中使用它。使用存儲過程監視表屬性
下面是我的程序
create or replace PROCEDURE MONITOR AS
v_count number:=0;
v_Last_Extract_Ts VARCHAR2(80) := '';
v_Last_ETL_Run VARCHAR2(80) := '';
BEGIN
select count(*) into v_count from oms_etl_config where ATTR_NM='last_extract_ts' and process_type='upd' and ATTR_VALUE<=to_char(sys_extract_utc(systimestamp)-5/1440,'YYYY-MM-DD HH24:MI:SS');
select Attr_value into v_Last_Extract_Ts from OMS_ETL_CONFIG where PROCESS_TYPE='upd' AND ATTR_NM='last_extract_ts';
Select MAX(START_TS) into v_Last_ETL_Run from OMS_ETL_AUDIT;
dbms_output.put_line(v_count);
dbms_output.put_line(v_Last_Extract_Ts);
dbms_output.put_line(v_Last_ETL_Run);
END;
我碰到的東西來了,如同在Insert results of a stored procedure into a temporary table,Exec stored procedure into dynamic temp table存儲在臨時表的存儲過程的結果,但我不能完全看它如何滿足我的需求。
正是我想實現的可能或者我需要有不同的方法。
在此先感謝。
P.S.我絕對是PL/SQL和存儲過程的初學者,所以我 沒有任何嘗試在我的帖子中展示我所做的研究。對不起。
Oracle(PL \ SQL)或SQL Server(T-SQL)? – Aditya
@Aditya它是Oracle PL-SQL,而不是SQL服務器t SQL可以編輯標籤 –
您可以在表上創建一個觸發器,並檢查在此運行期間值是否更改。在這種情況下,您可以提出一條消息 – XING