在PL/SQL中,可以使用EXECUTE IMMEDIATE語句執行帶變量的SQL語句。以下是一個示例:
DECLARE
sql_stmt VARCHAR2(200);
emp_id NUMBER := 100;
emp_name VARCHAR2(100);
BEGIN
sql_stmt := 'SELECT employee_name INTO emp_name FROM employees WHERE employee_id = :id';
EXECUTE IMMEDIATE sql_stmt USING emp_id;
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || emp_name);
END;
在上面的示例中,首先聲明了一個變量sql_stmt用來存儲要執行的SQL語句,然后聲明了一個emp_id變量,并賦值為100。接下來,使用EXECUTE IMMEDIATE語句執行SQL語句,并使用USING子句將emp_id變量傳遞給SQL語句中的:id參數。最后,通過DBMS_OUTPUT.PUT_LINE語句將查詢結果輸出到控制臺。
請注意,使用EXECUTE IMMEDIATE語句執行動態SQL語句時,應格外注意安全性和防止SQL注入攻擊。可以使用綁定變量(如上述示例中的:id)來替代直接將變量值拼接到SQL語句中。