pl/sql--動態SQL常用方法

oracle_db發表於2009-11-16

說明:寫儲存過程的時候經常都會用到動態SQL,現做一小結

PL/SQL中常用動態SQL方法

型別1:不是查詢語句,只是DDL語句,UPDATE,INSERT,DELETE,沒有繫結變數

例:

EXECUTE IMMEDIATE 'CREATE INDEX emp_ind_1 on emp (sal, hiredate)';

EXECUTE IMMEDIATE
   'UPDATE ' || l_table || ' SET sal = 10000 WHERE empno = 1506'

型別2:不是查詢語句,只是UPDATE,INSERT,DELETE,有繫結變數

例:

EXECUTE IMMEDIATE
   'UPDATE ' || l_table || ' SET sal = :salary WHERE = :employee_id'
   USING 10000, 1506;


型別3:有繫結變數的查詢

例:

EXECUTE IMMEDIATE
   'SELECT last_name, salary FROM employee
     WHERE department_id = :dept_id'
   USING 10
   INTO l_last_name, l_salary;

型別4:一個語句,它所SELECT的列是不確定的,動態的[還沒玩過這種..]

例:

OPEN l_cursor FOR
   'SELECT ' || l_column_list ||
     'FROM employee';



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

相關文章