介紹 Orale Dynamic SQL 如何動態執行 Procedure / Function,
參考範例, 如下 :
程式碼
-- 步驟 1 : 建立 Test Function create or replace function tom_func1( a number, b number ) return VARCHAR2 is c number; begin c := a + b; return to_char(c); end; -- 步驟 2 : 利用 Select 取得 Function 值 (限制 : Function 中不能有 DML) declare vResult varchar2(3); begin execute immediate 'select tom_func1( :1, :2 ) from dual' into vResult using 100, 200; dbms_output.put_line( vResult ); end; -- 步驟 3 : 利用 Begin...End 取得 Function 值 (限制 : 無) declare vResult varchar2(3); begin execute immediate 'begin :1 := tom_func1( :2, :3 ); end;' using out vResult, 100, 200; dbms_output.put_line( vResult ); end; -- 步驟 4 : Drop Test Function drop function tom_func1;
其他 Dynamic SQL 介紹文章 :
Dynamic SQL 基礎:Dynamic SQL 基本語法.
進階 1:動態執行 Begin ~ End.
進階 2:動態取得多筆資料.