oracle建立儲存過程並呼叫

2021-08-09 12:51:43 字數 1562 閱讀 8600

儲過程(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返回的個數一樣...