從系統檢視中生成儲存過程的單元測試指令碼的指令碼(供參考)
從系統檢視中生成儲存過程的單元測試指令碼(供參考)
[@more@]create or replace function f_get_proc_param(obj_name in varchar2)return varchar2 is
res varchar2(4000);
cnt number default 0;
begin
res := res || 'PROMPT **********************************************' || chr(10);
res := res || 'PROMPT Test ' || obj_name || chr(10);
res := res || 'PROMPT **********************************************' || chr(10);
res := res || 'PROMPT 模擬資料語句塊,請在此處新增SQL' || chr(10);
res := res || 'PROMPT ##############################################' || chr(10);
res := res || chr(10);
res := res || 'PROMPT 執行儲存過程,請修改引數值' || chr(10);
res := res || 'PROMPT ##############################################' || chr(10);
--res := res || 'DECLARE' || chr(10);
for rec in (select argument_name,
decode(data_type,'VARCHAR2','VARCHAR2(1000)',data_type) data_type,
in_out
from user_arguments
where object_name = obj_name
and in_out like '%OUT%'
and argument_name is not null) loop
res := res || 'VARIABLE ' || rec.argument_name || ' ' || rec.data_type || ';' || chr(10);
end loop;
--res := res || 'BEGIN' || chr(10);
res := res || 'EXEC ' || obj_name || '(' || chr(10);
for rec in (select argument_name,
data_type,
default_value,
default_length,
in_out
from user_arguments
where object_name = obj_name
and argument_name is not null
order by position) loop
if rec.in_out like '%OUT%' then
if cnt = 0 then
res := res || ' ' || rec.argument_name || ' => :' || rec.argument_name || chr(10);
else
res := res || ' ,' || rec.argument_name || ' => :' || rec.argument_name || chr(10);
end if;
else
if cnt = 0 then
res := res || ' ' || rec.argument_name || ' => ?' || chr(10);
else
res := res || ' ,' || rec.argument_name || ' => ?' || chr(10);
end if;
end if;
cnt := 1;
end loop;
res := res || ' );' || chr(10);
--res := res || ' DBMS_OUTPUT.PUT_LINE(''返回程式碼:"'' || V_AN_O_RET_CODE || ''"'');' || chr(10);
--res := res || ' DBMS_OUTPUT.PUT_LINE(''返回資訊:"'' || V_AC_O_RET_MSG || ''"'');' || chr(10);
--res := res || 'END;' || chr(10) || '/' || chr(10);
res := res || 'PROMPT 查詢結果,請在此處新增SQL' || chr(10);
res := res || 'PROMPT ##############################################' || chr(10);
res := res || chr(10);
return res;
end;
/
set feedback off
set head off
spool e:UnitTest.sql
select 'spool e:unittestTest'||a.object_name||'.sql' || chr(10) ||
'select ''' || f_get_proc_param(a.object_name) || ''' from dual;' || chr(10) ||
'spool off' script
from user_procedures a,user_objects b
where a.object_name = b.object_name
and b.object_type = 'PROCEDURE';
spool off
spool e:unittestmain.sql
prompt PROMPT 測試開始 ......
prompt PROMPT ==============================================
select script
from user_procedures a,user_objects b
where a.object_name = b.object_name
and b.object_type = 'PROCEDURE';
spool off
drop function f_get_proc_param;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/802415/viewspace-842460/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- pgbench 壓力測試指令碼作為參考.指令碼
- sqlserver資料庫還原儲存過程指令碼SQLServer資料庫儲存過程指令碼
- Linux系統檢查指令碼Linux指令碼
- unittest 單元測試框架教程 1-執行測試指令碼框架指令碼
- Linux中檢視指令碼程式是否存在的命令!Linux指令碼
- 單元測試-一份如何寫好單元測試的參考
- PYTHON測試指令碼Python指令碼
- 如何把SQL Server中一個表,一個儲存過程,一個檢視等改為系統表,系統儲存過程,系統檢視等...SQLServer儲存過程
- Keepalived檢測mysql 3306心跳的指令碼MySql指令碼
- Laravel 通過遷移指令碼建立MySQL檢視Laravel指令碼MySql
- Laravel 透過遷移指令碼建立MySQL檢視Laravel指令碼MySql
- 考試安排查詢指令碼(CUP)指令碼
- 一個快速檢視trace的小指令碼指令碼
- 用於檢視配置的儲存過程 | 全方位認識 sys 系統庫儲存過程
- 透過Python指令碼理解系統程式Python指令碼
- MySQL--儲存過程與檢視MySql儲存過程
- redolog生成指令碼指令碼
- 基於儲存過程的百萬級測試資料自動生成儲存過程
- 【JDBC】java連線池模擬測試連線Oracle資料庫指令碼參考JDBCJavaOracle資料庫指令碼
- 通過shell指令碼檢測MySQL服務資訊指令碼MySql
- 通過錄制指令碼進行壓測,生成的測試報告真的有價值嗎?指令碼測試報告
- Python指令碼檢測笑臉漏洞Python指令碼
- Chrome如何檢視儲存的網站密碼,如此簡單!Chrome網站密碼
- redis中lua指令碼的簡單使用Redis指令碼
- mysql檢視儲存過程show procedure status;MySql儲存過程
- win10檢視儲存的wifi密碼_如何檢視win10電腦儲存的wifi密碼Win10WiFi密碼
- [python] request 介面測試自動化指令碼轉化為 [locust] 效能測試指令碼Python指令碼
- sqoop指令碼批量生成OOP指令碼
- 系統測試-從研發到測試過程
- JMeter做效能測試(1)-效能壓測指令碼的生成以及完善和增強JMeter指令碼
- Sqlserver中的儲存過程SQLServer儲存過程
- 檢測不同伺服器上程式碼差別的shell的指令碼伺服器指令碼
- dba巡檢指令碼指令碼
- mysql巡檢指令碼MySql指令碼
- [20190416]exclusive latch測試指令碼.txt指令碼
- iOS17 效能測試指令碼iOS指令碼
- [20190423]oradebug peek測試指令碼.txt指令碼
- Mesh-gpt(點處理、儲存指令碼,Transformer)GPT指令碼ORM
- Shell指令碼——Linux系統中的時間猜數字指令碼Linux