2016/03/04

Oracle PL/SQL Dynamic SQL 動態語法 3

在這篇文章中,

介紹 Orale Dynamic SQL 如何動態執行 block 區塊, 也就是所謂的 begin ~ end;

參考範例, 如下 :
 程式碼
declare
  v_sql  varchar2(255) := 'declare' ||
                          '  v_num number := 20; ' ||
                          '  v_chr varchar2(100); ' ||
                          'begin ' ||
                            'v_num := v_num + 100; ' ||
                            ' v_chr := ''aaa''; ' ||
                            ':a1 := v_num; ' ||
                            ':a2 := v_chr; ' ||
                          'end;';
  v_data number;
  v_char varchar2(100);
begin
  execute immediate v_sql using out v_data, out v_char;
  
  dbms_output.put_line( 'v_data = ' || to_char( v_data ) );
  dbms_output.put_line( 'v_char = ' || v_char );
end;
 
-- 執行結果
v_data = 120
v_char = aaa

其他 Dynamic SQL 介紹文章 :

Dynamic SQL 基礎:Dynamic SQL 基本語法.

進階 1:動態執行 Procedure / Function.

進階 2:動態取得多筆資料.