create proc or procedure sp_name
@[引數名][型別],@[引數名][型別][output]
[with]
as
begin
end;
exec/call sp_name[引數名];
—-刪除儲存過程
drop procedure sp_name;
大多數常用資料都支援儲存過程,但是各類資料庫都有自己的過程語言或者語法格式,也就是訪問不同型別的資料庫,需要考慮移植問題。下面簡單描述了各種常見資料庫中使用儲存過程的語法格式。
sql server資料庫提供的過程語言是transact-sql,簡稱t-sql。
oracle資料庫提供工程語言pl/sql來構建儲存過程。
postgresql資料庫提供多種過程語言,pl/pgsql, pl/tcl, pl/perl, pl/python,下面是pl/gpsql過程語言的乙個示例。
在oracle資料庫中,儲存過程和函式統稱為pl/sql子程式,他們的唯一區別是函式總向呼叫者返回資料,而過程則不返回資料,過程的引數可以有三種模式(in、out、in out),而函式只有一種(in)。而在postgresql資料庫中不區分函式和儲存過程,或者說它把儲存過程當做函式來處理,因此在用pl/gpsql建立的儲存過程中,必須返回資料,型別可以為void。
給出如下條件進行批處理編排
— - - 開始日期時間
— - - 重複間隔(分鐘)
— - - 重複次數
需求:
要求在檔期內重複安排節目播出, 比如: 2003.01.01 08:00 開始每隔240分鐘 播出一次, 一共播出100次, 或者使用者自行設定的其他時間。
—-建立表
create table co_schedule
(
n_progid int,
dt_starttime timestamp,
dt_endtime timestamp
);
—-建立函式(儲存過程)
create function add_program_time(int4,timestamp,int4,int4,int4) returns bool as '
declare
prog_id alias for $1;
duration_min alias for $3;
period_min alias for $4;
repeat_times alias for $5;
i int;
starttime timestamp;
ins_starttime timestamp;
ins_endtime timestamp;
begin
starttime :=$2;
i := 0;
while i
if i
end;
'language 'plpgsql';
儲存過程系列之儲存過程sql查詢儲存過程的使用
1.查詢某個表被哪些儲存過程 以下簡稱 sp 使用到 select distinct object name id from syscomments where id in select object id from sys.objects where type p and text like ta...
儲存過程系列之儲存過程sql查詢儲存過程的使用
1.查詢某個表被哪些儲存過程 以下簡稱 sp 使用到 select distinct object name id from syscomments where id in select object id from sys.objects where type p and text like ta...
Oracle儲存過程呼叫儲存過程
oracle儲存過程呼叫有返回結果集的儲存過程一般用光標的方式,宣告乙個游標,把結果集放到游標裡面,然後迴圈游標 declare newcs sys refcursor cs1 number cs2 number cstype table rowtype table列的個數和newcs返回的個數一樣...