儲過程(stored procedure)是在大型資料庫系統中,一組為了完成特定功能的sql 語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的乙個重要物件。
create
or replace procedure 儲存過程的名稱 is
begin
***x......此處為自己需要執行的sql語句
end 儲存過程的名稱;
create
orreplace
procedure p_sub_leaders is
begin
execute
immediate
'truncate table subcom_leaders';
commit;
insert
into subcom_leaders
(id, org_id, username, realname)
select parent_node_id id,
node_id orgid,
org_id uername,
org_name realname
from t_sys_tree
where parent_node_id in
(select node_id id from t_sys_tree where org_name = '分公司領導');
commit;
update subcom_leaders l
set (l.org_name, l.nodeorder) =
(select b.subcomname, b.nodeorder
from (select t.node_id nodeid,
t.org_name orgname,
s.subcomname,
s.id subcomid,
s.nodeorder
from t_sys_tree t,
(select t.node_id id,
t.org_name subcomname,
t.node_order nodeorder
from t_sys_tree t
where node_id in
(select parent_node_id pid
from t_sys_tree
where org_name = '分公司領導')) s
where t.parent_node_id = s.id
and t.org_name = '分公司領導'
order
by s.nodeorder) b
where b.nodeid = l.id);
commit;
end p_sub_leaders;
call p_sub_leaders ();
oracle 建立包和儲存過程並呼叫舉例
規範 create orreplace package test pkg is test pkg為包名 procedure showmessage 宣告乙個過程 function myadd x innumber,y innumber return number 宣告函式 endtest pkg 主...
Oracle建立INSERT儲存過程並呼叫
初學資料庫,對儲存過程一頭霧水,上午學習建立簡單的資料表,由於運維需要用到資料庫儲存,之前生產資料庫定時儲存過程一直失效,於是想自己寫乙個儲存過程,測試下定時儲存任務,後續打算用crontab來定時呼叫儲存過程。下午從網上找了一些儲存過程的例子,理解改寫後往自己的資料庫裡面insert資料,一直在瘋...
Oracle儲存過程呼叫儲存過程
oracle儲存過程呼叫有返回結果集的儲存過程一般用光標的方式,宣告乙個游標,把結果集放到游標裡面,然後迴圈游標 declare newcs sys refcursor cs1 number cs2 number cstype table rowtype table列的個數和newcs返回的個數一樣...