declare
v_col_name varchar2(30) := ’name’; --字段名 name 用變量來表示
v_user_name varchar2(30); --用戶名稱
v_user_age integer; --用戶年齡
v_sql_str varchar2(500); --動態 SQL 語句
begin
v_sql_str := ’select ’||v_col_name||’,age from users --字段名後面不能緊隨 into 到變量了
where age between :start_age and :end_age and rownum=1’; --兩個命名參數
--用 execute immediate 動態執行 SQL 語句
--註意其後的 into 字段值到變量的寫法,還有 using 來代入參數
execute immediate v_sql_str into v_user_name,v_user_age using 18,25;
dbms_output.put_line(’第壹個符合條件的用戶:’||v_user_name||’,年齡:’||v_user_age);
end;
除此之外,在 Oracle 8i 及以上版本中,還能用 DBMS_UTILITY.EXEC_DDL_STATEMENT(ddl_sql_str) 執行 DDL 語句。