是的,Oracle動態SQL支持綁定變量。通過綁定變量,可以提高SQL語句的執行效率,避免SQL注入攻擊,并使SQL語句更易于維護和重用。在Oracle中,可以使用冒號(:)符號來表示綁定變量,然后在執行SQL語句時將實際的值賦給這些綁定變量。例如:
DECLARE
v_emp_id NUMBER := 100;
v_emp_name VARCHAR2(50);
BEGIN
EXECUTE IMMEDIATE 'SELECT employee_name INTO :emp_name FROM employees WHERE employee_id = :emp_id'
USING v_emp_name, v_emp_id;
DBMS_OUTPUT.PUT_LINE('Employee name: ' || v_emp_name);
END;
在上面的例子中,使用USING
子句來指定綁定變量v_emp_name
和v_emp_id
的值,然后在執行SQL語句時將這些值傳遞給SQL語句中的綁定變量:emp_name
和:emp_id
。這樣可以確保SQL語句的執行效率,并避免SQL注入攻擊。