用 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 |