• <menu id="w2i4a"></menu>
  • logo PL/SQL Developer系列教程

    文檔首頁>>PL/SQL Developer系列教程>>PL/SQL Developer使用教程:PL/SQL入門知識(二)

    PL/SQL Developer使用教程:PL/SQL入門知識(二)


    PL/SQL Developer是一個集成開發(fā)環(huán)境,它專門針對Oracle數(shù)據(jù)庫的存儲程序單元的開發(fā)所用。開發(fā)Oracle應(yīng)用程序的時候都注重于開發(fā)工具簡單易用,代碼簡潔和開發(fā)效率高等特點。

    點擊下載PL/SQL Developer免費版

    本文主要介紹PL/SQL的入門知識:PL/SQL 數(shù)組 和PL/SQL 函數(shù)。幫助各位新手快速熟悉PL/SQL和PL/SQL Developer軟件。

    PL/SQL 數(shù)組 

    數(shù)組的定義 TYPE varray_type_name IS VARRAY(n) OF element_type 

    舉例:

    TYPE namearray IS VARRAY(5) OF VARCHAR2(10);
    Type grades IS VARRAY(5) OF INTEGER;

    使用可變數(shù)組:

    DECLARE
        type namesarray IS VARRAY(5) OF VARCHAR2(10);
        type grades IS VARRAY(5) OF INTEGER;
        names namesarray; --拿到數(shù)組的引用,下面就可以變長使用該數(shù)組
        marks grades;
        total integer;
    BEGIN
        names := namesarray('Kavita', 'Pritam', 'Ayan', 'Rishav', 'Aziz');
        marks:= grades(98, 97, 78, 87, 92);
        total := names.count; --求數(shù)組的長度
        dbms_output.put_line('Total '|| total || ' Students');
        FOR i in 1 .. total LOOP
            dbms_output.put_line('Student: ' || names(i) || ' Marks: ' || marks(i));
        END LOOP;
    END;

    求數(shù)組的長度 array_name.count

    注意: 在Oracle的環(huán)境下,數(shù)組的起始索引從1開始。

    PL/SQL子程序被命名之后,可使用一組參數(shù)來調(diào)用PL/SQL塊。 PL/SQL提供兩種子程序: 

    • 函數(shù):這些子程序返回一個值,主要用于計算并返回一個值。 

    • 過程:這些子程序沒有直接返回值,主要用于執(zhí)行操作。

    存儲過程定義:

    CREATE [OR REPLACE] PROCEDURE procedure_name
    [(parameter_name [IN | OUT | IN OUT] type [, ...])] 
        (IS,AS)
    BEGIN
        < procedure_body >
    END[procedure_name];
    • procedure-name 指定的程序的名稱

    • [OR REPLACE] 選項允許修改現(xiàn)有的程序

    • 可選的參數(shù)列表中包含的名稱,模式和類型的參數(shù)。IN表示該值將被從外部傳遞,OUT表示該參數(shù)將被用于從過程返回一個值到外面

    • procedure-body 包含可執(zhí)行部分

    • AS關(guān)鍵字來代替了IS關(guān)鍵字用于創(chuàng)建一個獨立的程序。

    舉例:

    CREATE OR REPLACE PROCEDURE greetings
        AS
    BEGIN
        dbms_output.put_line('Hello World!');
    END;

    創(chuàng)建好的存儲過程只需要運行一下就會自動保存??梢酝ㄟ^選中存儲過程右鍵,進(jìn)行測試。

    刪除存儲過程 : drop procedure procedure_name;

    PL/SQL Developer使用教程:PL/SQL入門知識(二)

    舉例說明:

    Create PROCEDURE findMin(x IN number, y IN number, z OUT number) 
    ISBEGIN
        IF x < y THEN
            z:= x;
        ELSE
            z:= y;
            END IF;
    END;
    create PROCEDURE squareNum(x IN OUT number) 
    ISBEGIN
        x := x * x;
    END;

    PL/SQL 函數(shù): 

    創(chuàng)建函數(shù)語法:

    CREATE [OR REPLACE] FUNCTION function_name
    [(parameter_name [IN | OUT | IN OUT] type [, ...])] RETURN return_datatype
        {IS | AS}
    BEGIN
        < function_body >
    END [function_name];
    • function-name 指定函數(shù)的名稱

    • [OR REPLACE] 選項允許修改現(xiàn)有的函數(shù)

    • 可選的參數(shù)列表中包含的名稱,模式和類型的參數(shù)。IN表示該值將被從外部傳遞和OUT表示該參數(shù)將被用于過程外面返回一個值

    • 函數(shù)必須包含一個return語句

    • return 子句指定要帶函數(shù)返回的數(shù)據(jù)類型

    • function-body 包含可執(zhí)行部分

    • AS關(guān)鍵字來代替了IS關(guān)鍵字用于創(chuàng)建一個獨立的函數(shù)

    舉例:

    CREATE OR REPLACE FUNCTION totalCustomers
       RETURN number IS
        total number(2) := 0;
    BEGIN
        SELECT count(*) into total
        FROM customers;
    
        RETURN total;
    END;
    create or replace function findMax(x in number,y in number)
    return number as
           z number;
    begin
      if x > y then
        z := x;
      else
        z := y;
      end if;
    
      return z;
    end;

    本文內(nèi)容到這里就結(jié)束了,希望對您有所幫助~感興趣的朋友可以下載PL/SQL Developer試用版嘗試一下!

    相關(guān)內(nèi)容推薦:

    PL/SQL Developer 使用教程>>>


    想要購買該產(chǎn)品正版授權(quán),或了解更多產(chǎn)品信息請點擊“咨詢在線客服”

    850×68.png


    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();