午夜福利院在线观看免费,天堂最新版在线,色噜噜精品一区二区三区,无码一区二区三区中文字幕,丝袜美腿一区二区三区

首頁(yè)>文檔>技術(shù)文檔>Oracle存儲(chǔ)過(guò)程是什么?怎樣創(chuàng)建存儲(chǔ)過(guò)程?

此組別內(nèi)的文章

需要支持?

如果通過(guò)文檔沒(méi)辦法解決您的問(wèn)題,請(qǐng)?zhí)峤还潍@取我們的支持!

Oracle存儲(chǔ)過(guò)程是什么?怎樣創(chuàng)建存儲(chǔ)過(guò)程?

這篇文章主要簡(jiǎn)單的介紹一下Oracle存儲(chǔ)過(guò)程,對(duì)新手學(xué)習(xí)和理解Oracle存儲(chǔ)過(guò)程是什么及怎樣創(chuàng)建存儲(chǔ)過(guò)程都有一定的幫助,感興趣的朋友可以了解看看,希望大家閱讀完這篇文章能有所收獲,接下來(lái)跟隨小編一起來(lái)學(xué)習(xí)一下吧。

Oracle存儲(chǔ)過(guò)程是什么?怎樣創(chuàng)建存儲(chǔ)過(guò)程?插圖

????在oracle中,存儲(chǔ)過(guò)程是為了完成特定功能的SQL語(yǔ)句集,編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中,用戶通過(guò)指定存儲(chǔ)過(guò)程名字并給出參數(shù)來(lái)執(zhí)行它;語(yǔ)法格式為“create or replace procedure 存儲(chǔ)過(guò)程名”。

????Oracle存儲(chǔ)過(guò)程包含三部分:過(guò)程聲明,執(zhí)行過(guò)程部分,存儲(chǔ)過(guò)程異常(可寫(xiě)可不寫(xiě),要增強(qiáng)腳本的容錯(cuò)性和調(diào)試的方便性那就寫(xiě)上異常處理)

????存儲(chǔ)過(guò)程它的使用主要是完成一項(xiàng)復(fù)雜的功能,如果直接使用sql語(yǔ)句則每次都需要進(jìn)行編譯,而存儲(chǔ)過(guò)程只需要編譯一次,以后直接調(diào)用即可,它的語(yǔ)法為

create or replace procedure procedure_name
as
begin
   extention;
end;
/

????行1:

??CREATE OR REPLACE PROCEDURE 是一個(gè)SQL語(yǔ)句通知Oracle數(shù)據(jù)庫(kù)去創(chuàng)建一個(gè)叫做skeleton存儲(chǔ)過(guò)程, 如果存在就覆蓋它;

????行2:

??IS關(guān)鍵詞表明后面將跟隨一個(gè)PL/SQL體。

????行3:

??BEGIN關(guān)鍵詞表明PL/SQL體的開(kāi)始。

????行4:

??NULL PL/SQL語(yǔ)句表明什么事都不做,這句不能刪去,因?yàn)镻L/SQL體中至少需要有一句;

????行5:

??END關(guān)鍵詞表明PL/SQL體的結(jié)束

????存儲(chǔ)過(guò)程創(chuàng)建語(yǔ)法:

 create or replace procedure 存儲(chǔ)過(guò)程名(param1 in type,param2 out type) 
as 
變量1 類型(值范圍); --vs_msg   VARCHAR2(4000); 
變量2 類型(值范圍);
Begin
Select count(*) into 變量1 from 表A where列名=param1;
 
    If (判斷條件) then
       Select 列名 into 變量2 from 表A where列名=param1;
       Dbms_output。Put_line(‘打印信息’);
    Elsif (判斷條件) then
       Dbms_output。Put_line(‘打印信息’);
    Else
       Raise 異常名(NO_DATA_FOUND);
    End if;
Exception
    When others then
       Rollback;
End;

????注意事項(xiàng):

????1, 存儲(chǔ)過(guò)程參數(shù)不帶取值范圍,in表示傳入,out表示輸出

????類型可以使用任意Oracle中的合法類型。

????2, 變量帶取值范圍,后面接分號(hào)

????3, 在判斷語(yǔ)句前最好先用count(*)函數(shù)判斷是否存在該條操作記錄

????4, 用select 。。。into。。。給變量賦值

????5, 在代碼中拋異常用 raise+異常名

0 條回復(fù) A文章作者 M管理員
    暫無(wú)討論,說(shuō)說(shuō)你的看法吧
QQ客服
  • QQ176363189 點(diǎn)擊這里給我發(fā)消息
旺旺客服
  • 速度網(wǎng)絡(luò)服務(wù)商 點(diǎn)這里給我發(fā)消息
電子郵箱
  • sudu@yunjiasu.cc
微信客服
  • suduwangluo