PLSQL Language Referenc-PL/SQL靜態SQL-靜態SQL的描述-語句

LuiseDalian發表於2014-03-14

PL/SQL靜態SQL

靜態SQLPL/SQL的一個功能,它允許SQL語法直接出現在PL/SQL語句中。

靜態SQL的描述

語句

PL/SQL靜態SQL,可以在對應的SQL語句使用繫結變數的地方使用PL/SQL識別符號,該識別符號用於表示一個變數或一個引數。

-- PL/SQL靜態SQL

DROP TABLE employees_temp;

CREATE TABLE employees_temp AS

    SELECT employee_id, first_name, last_name

    FROM employees;

 

DECLARE

    emp_id          employees_temp.employee_id%TYPE := 299;

    emp_first_name  employees_temp.first_name%TYPE  := 'Bob';

    emp_last_name   employees_temp.last_name%TYPE   := 'Henry';

BEGIN

    --靜態SQL語句,INSERT, UPDATE, DELETECOMMIT

    INSERT INTO employees_temp (employee_id, first_name, last_name)

    VALUES (emp_id, emp_first_name, emp_last_name);

 

    UPDATE employees_temp

    SET first_name = 'Robert'

    WHERE employee_id = emp_id;

 

    DELETE FROM employees_temp

    WHERE employee_id = emp_id

    RETURNING first_name, last_name

    INTO emp_first_name, emp_last_name;

 

    COMMIT;

    DBMS_OUTPUT.PUT_LINE (emp_first_name || ' ' || emp_last_name);

END;

注意:在PL/SQL程式碼執行了DML語句之後,一些變數的值是未定義的。

n  FETCHSELECT語句引發異常之後,那這些語句之後定義的變數的值是未定義的。

n  DML操作影響了0行之後out繫結變數的值是未定義的,除非DML語句是BULK或多行操作。

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

相關文章