用 PL/SQL 撰寫 HELLO PL/SQL 的方法有下列幾種:

1. Anonymous Blocks
2. Function
3. Procedure
4. Package

註:所有建立的 Table、Index、Sequence、Function、Procedure、Package...等,都可以在 VIEW:USER_OBJECTS 中的 status 欄位查詢得到它的狀態。

Anonymous Blocks 的程式範例:

SET SERVEROUTPUT ON -- 資料輸出顯示開啟
-- Anonymous Blocks
DECLARE
  V_HELLO VARCHAR2(20);
BEGIN
  V_HELLO := 'HELLO PL/SQL';
  DBMS_OUTPUT.PUT_LINE(V_HELLO);
END ;
-- 執行
/ 

顯示出的結果

anonymous block completed
HELLO PL/SQL

 

Function 的程式範例:

CREATE OR REPLACE FUNCTION FUNC_HELLO( F_NAME VARCHAR2:=NULL )
RETURN VARCHAR2
IS
  V_TEMP VARCHAR2(20);
BEGIN
  V_TEMP := 'HELLO ';
  RETURN V_TEMP || F_NAME;
END;
-- 執行 Compile
/ 

執行 Function 帶參數

SELECT FUNC_HELLO('PL/SQL') FROM DUAL;
-- 執行
/ 

結果

FUNC_HELLO('PL/SQL')
-------------------------------------
HELLO PL/SQL

 

執行 Function 不帶參數

SELECT FUNC_HELLO FROM DUAL;
-- 執行
/ 

結果

FUNC_HELLO
-------------------------------------
HELLO

 

Procedure 的程式範例:

CREATE OR REPLACE PROCEDURE PROC_HELLO IS
  V_HELLO VARCHAR2(20);
BEGIN
  V_HELLO := 'HELLO PL/SQL';
  DBMS_OUTPUT.PUT_LINE(V_HELLO);
END ;
-- 執行 Compile
/ 

執行 Procedure

SET SERVEROUTPUT ON
EXECUTE PROC_HELLO
-- 執行
/ 

結果

anonymous block completed
HELLO PL/SQL

 

 Package 的程式範例:

-- 建立 Package 規格
CREATE OR REPLACE PACKAGE PACK_HELLO AS
  PROCEDURE PROC_HELLO(P_NAME VARCHAR2:=NULL) ;
  FUNCTION FUNC_HELLO (F_NAME VARCHAR2:=NULL) RETURN VARCHAR2;
END;
/
-- 建立 Package 主體
CREATE OR REPLACE PACKAGE BODY PACK_HELLO AS
  PROCEDURE PROC_HELLO(P_NAME VARCHAR2:=NULL) IS
  BEGIN
   DBMS_OUTPUT.PUT_LINE('HELLO '||P_NAME );    
  END ;
  
  FUNCTION FUNC_HELLO ( F_NAME VARCHAR2:=NULL) RETURN VARCHAR2 IS
    V_HELLO VARCHAR2(20);
  BEGIN
    V_HELLO:='HELLO ';
    RETURN V_HELLO || F_NAME; 
  END ;
END;
/

執行 Package.Procedure:PACK_HELLO.PROC_HELLO

SET SERVEROUTPUT ON
EXECUTE PACK_HELLO.PROC_HELLO('PL/SQL');
/

結果

匿名區塊已完成
HELLO PL/SQL

執行 Package.Function:PACK_HELLO.FUNC_HELLO

SELECT PACK_HELLO.FUNC_HELLO('PL/SQL') FROM DUAL;
/

結果

PACK_HELLO.FUNC_HELLO('PL/SQL')
--------------------------------------------------------
HELLO PL/SQL
arrow
arrow
    文章標籤
    PL/SQL Oracle
    全站熱搜

    MIS 發表在 痞客邦 留言(0) 人氣()