儲存過程中巢狀儲存過程的變數執行方式
今天給新同事講資料維護過程的時候,他提出了寫一個儲存過程來檢查日誌表出錯之後呼叫相關的儲存過程,我們的日誌表當中寫入的表名和相應儲存過程名稱的差別是多了一個etl_,因此ETL_||table就是儲存過程的名稱.但是在編譯過程當中無法將變數的儲存過程名稱在巢狀時執行,經過多方查詢,一度懷疑是否可以執行這種變數式的儲存過程,但是終於找到了方法,儲存過程如下:
create or replace procedure yx_etl_proc as
cursor tb is select 'ETL_'||table_name
from etl_log
where end_time is null and (table_name,start_time) in (select table_name,max(start_time)
from etl_log where start_time>trunc(sysdate)
group by table_name);
c_proc_name etl_log.table_name%type;
begin
open tb;
loop
fetch tb into c_proc_name;
exit when tb%notfound;
execute immediate 'begin '||c_proc_name||';end;';
commit;
end loop;
close tb;
end yx_etl_proc;
粗體部分就是巢狀儲存過程的執行方法。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12216142/viewspace-509517/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 儲存過程中巢狀事務儲存過程巢狀
- MYsql-儲存過程-遊標的巢狀MySql儲存過程巢狀
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- 造數儲存過程儲存過程
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- 儲存過程儲存過程
- Sqlserver中的儲存過程SQLServer儲存過程
- /*動態執行儲存過程DEMO*/儲存過程
- 檢視正在執行的儲存過程儲存過程
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- MySQL儲存過程詳解 mysql 儲存過程linkMySql儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- mysql儲存過程的引數MySql儲存過程
- 行為儲存過程(23)儲存過程
- PB中呼叫儲存過程儲存過程
- 儲存過程中拼接字串儲存過程字串
- java中呼叫儲存過程Java儲存過程
- 儲存過程與儲存函式儲存過程儲存函式
- Oracle儲存過程Oracle儲存過程
- 使用儲存過程儲存過程
- sybase儲存過程儲存過程
- java儲存過程Java儲存過程
- 管理儲存過程儲存過程
- 呼叫儲存過程儲存過程
- mysql 儲存過程MySql儲存過程
- SQLSERVER儲存過程SQLServer儲存過程
- 執行Sybase儲存過程並返回ResultSet儲存過程
- 使用ADO執行儲存過程 (轉)儲存過程
- 使用Command執行儲存過程 (轉)儲存過程
- oracle父儲存過程呼叫子儲存過程procedure與輸出引數Oracle儲存過程
- oracle的儲存過程Oracle儲存過程
- 修改的儲存過程儲存過程
- mysql的儲存過程MySql儲存過程
- MySql儲存過程—2、第一個MySql儲存過程的建立MySql儲存過程
- 實戰儲存過程排程過程儲存過程
- oracle 如何終止儲存過程的執行Oracle儲存過程
- 儲存過程結果進行查詢 select 存過過程儲存過程