国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

PL/SQL過程

2024-07-21 02:40:37
字體:
來源:轉載
供稿:網友

 
    要想利用PL/SQL程序完成比較完整的數據庫任務,需要進一步學習一些高級設計要素的內容。前面編寫執行的PL/SQL程序,共同的特點是沒有名稱,只能存儲為文件,然后通過執行文件的方式執行,因此稱為無名塊。 與此對應的是在PL/SQL中也引入了高級程序設計的一些概念,其中最重要的就是過程。
    過程就是高級程序設計語言中的模塊的概念,將一些內部聯系的命令組成一個個過程,通過參數在過程之間傳遞數據是模塊化設計思想的重要內容。

創建過程

    1. 過程的語法結構
    完整的過程結構如下:
    create or replace PRocedure 過程名 as
        聲明語句段;
    begin
        執行語句段;
    exception
        異常處理語句段;
    end;
    2. 過程的特點
    過程是有名稱的程序塊,as要害詞代替了無名塊的declare。
    3. 創建過程實例
    在【SQLPlus Worksheet】中執行下列PL/SQL程序,該程序將創建名為tempprocedure的過程,create是創建過程的標識符,replace表示若同名過程存在將覆蓋原過程。該過程定義了一個變量,其類型和testtable數據表中的currentdate字段類型相同,都是日期型,將數據表中的recordnumber字段為88的currentdate字段內容送入變量中,然后輸出結果。
    ―――――――――――――――――――――――――――――――――――――
    set serveroutput on
    create or replace procedure tempuser.tempprocedure as
      tempdate tempuser.testtable.currentdate%type;
    begin
      select currentdate
      into tempdate
      from testtable
      where recordnumber=88;
      dbms_output.put_line(to_char(tempdate));
    end;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ createprocedure.sql。
    執行結果如圖9.41所示。
PL/SQL過程

查詢過程

    登錄【企業治理器】,在【治理目標導航樹】里選擇【網絡】/【數據庫】/【myOracle.mynet】/【方案】/【過程】/【TEMPUSER】選項,出現如圖9.42所示的創建好的過程。
PL/SQL過程

修改過程

    (1)在【SQLPlus Worksheet】的【菜單欄】選擇【文件】/【打開】菜單命令,將創建過程的createprocedure.sql文件調出進行修改,修改完畢后重新執行創建過程。
    (2)在【企業治理器】里選中要修改的過程,用鼠標右鍵單擊,在出現的快捷菜單里選擇【查看/編輯具體資料】選項,如圖9.43所示。
    (3)出現如圖9.44所示的編輯過程的【一般信息】選項卡。在【文本編輯區】可以編輯該過程,單擊“確定”按鈕將更新該過程,單擊“編譯”按鈕將編譯該過程的 PL/SQL 源代碼,使該過程可以在數據庫中存儲和執行。

(圖片較大,請拉動滾動條觀看)

執行過程

    要執行創建的過程,必須通過主程序來調用過程。

    在【SQLPlus Worksheet】中執行下列PL/SQL程序,執行結果如圖9.45所示。
    ―――――――――――――――――――――――――――――――――――――
    set serveroutput on
    begin
        tempprocedure;
    end;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ executeprocedure.sql。
PL/SQL過程
    在Oracle中,創建好的過程可以被任何程序調用。

帶參數的過程

    前面介紹的過程沒有參數,主程序和過程沒有數據的傳遞,下面介紹帶參數的過程的設計和使用。
    1. 參數類型
    在PL/SQL過程中,可以有3種類型的參數。
    in參數:讀入參數,主程序向過程傳遞參數值。
    out參數:讀出參數,過程向主程序傳遞參數值。
    in out 參數:雙向參數,過程與主程序雙向交流數據。
    2. 定義帶參數的過程
    在下面的PL/SQL程序代碼中,將創建三個調用參數。
    tempdeptno:類型為in,與scott.dept.deptno的類型一致,為數值型。
    tempdname:類型為out,與scott.dept.dname的類型一致,為字符型。
    temploc:類型為in out,與scott.dept.loc類型一致,為字符型。
    創建兩個過程內參數。
    loc1:與scott.dept.loc的類型一致,為字符型。
    dname1:與scott.dept.dname的類型一致,為字符型。
    該帶參數的過程的功能是從數據表scott.dept中尋找deptno字段等于tempdeptno調用參數值的dname和loc字段,和其他字符組合,送給兩個出口參數。
    以system用戶名、sysdba身份登錄【SQLPlus Worksheet】,執行下列PL/SQL程序,執行結果如圖9.46所示。
    ―――――――――――――――――――――――――――――――――――――
    Set serveroutput on
    create or replace procedure scott.tempprocedure(
        tempdeptno in scott.dept.deptno%type,
        tempdname out scott.dept.dname%type,
        temploc in out scott.dept.loc%type)as
        loc1 scott.dept.loc%type;
        dname1 scott.dept.dname%type;
    begin
        select loc into loc1
        from scott.dept
        where deptno=tempdeptno;
        select dname into dname1
        from scott.dept
        where deptno=tempdeptno;
        temploc:='地址:'loc1;
        tempdname:='姓名'dname1;
    end;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ createscottprocedure.sql。

PL/SQL過程
    調用參數分割用“,”號。
    3. 使用帶參數的過程
    在主程序中的實際參數和過程中的形式參數的傳遞有很多種辦法,這里推薦讀者采用一一對應的辦法,按對應的位置傳遞參數。要求實際參數和形式參數在數據類型和位置排列上做到完全一致。
    在【SQLPlus Worksheet】中執行下列PL/SQL程序,該程序調用帶參數的過程scott.tempprocedure,實際參數為(10,’’,’’)
    執行結果如圖9.47所示。

(圖片較大,請拉動滾動條觀看)
    【配套程序位置】:第9章/ executescottprocedure.sql。
PL/SQL過程
    讀者可以嘗試改變參數值,然后測試過程執行結果。


上一篇:PL/SQL流程控制

下一篇:PL/SQL序列

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江源县| 石河子市| 天水市| 漯河市| 繁峙县| 邳州市| 宁河县| 黎平县| 彩票| 漳浦县| 雷山县| 宝丰县| 涟源市| 东莞市| 柳江县| 新田县| 行唐县| 城口县| 安康市| 道孚县| 浑源县| 金阳县| 绥阳县| 台东县| 嫩江县| 晋宁县| 鲁甸县| 名山县| 广东省| 鞍山市| 丽水市| 和平县| 武鸣县| 准格尔旗| 连江县| 临漳县| 如皋市| 十堰市| 十堰市| 宁化县| 西和县|