PLSQL Language Referenc-PL/SQL動態SQL-練習:在動態SQL塊中呼叫子程式。

LuiseDalian發表於2014-03-18

練習:在動態SQL塊中呼叫子程式。(使用HR方案)

-- 11g12_07_01.sql                                 

-- 1. 檢視Departments表中原始資料

SELECT * FROM Departments;

-- 2. 建立CreateDept儲存過程

-- 3. 執行11g12_07_01.tst測試該儲存過程

-- 1. 再次檢視Departments表中的資料

 

-- 11g12_07_01.prc

CREATE OR REPLACE PROCEDURE CreateDept (

  deptid IN OUT NUMBER,

  dname  IN      VARCHAR2,

  mgrid  IN      NUMBER,

  locid  IN      NUMBER

) AS

BEGIN

  deptid := departments_seq.NEXTVAL;

  INSERT INTO departments VALUES (deptid, dname, mgrid, locid);

END;

 

-- 11g12_07_01.tst

DECLARE

    plSQLBlock VARCHAR2(500);

    newDeptID  NUMBER(4);

    newDName   VARCHAR2(30) := 'Advertising';

    newMGrid   NUMBER(6)    := 200;

    newLocID   NUMBER(4)    := 1700;

BEGIN

    -- 動態PL/SQL塊呼叫子程式:

    plSQLBLock := 'BEGIN CreateDept(:a, :b, :c, :d); END;';

   

    -- 使用USING子句指定繫結變數,且對第1個引數指定了IN OUT模式

    EXECUTE IMMEDIATE plSQLBlock

    USING IN OUT newDeptID, newDName, newMGrid, newLocID;   

    COMMIT;

END;

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1123730/,如需轉載,請註明出處,否則將追究法律責任。

相關文章