在PL/SQL中,可以使用EXECUTE IMMEDIATE語句來執行動態SQL查詢。下面是一個示例:
DECLARE
v_sql VARCHAR2(200);
v_result NUMBER;
BEGIN
-- 構建查詢語句
v_sql := 'SELECT COUNT(*) FROM employees WHERE department_id = :dept_id';
-- 執行查詢
EXECUTE IMMEDIATE v_sql INTO v_result USING 10;
-- 輸出結果
DBMS_OUTPUT.PUT_LINE('Number of employees in department 10: ' || v_result);
END;
在上面的示例中,首先定義了一個變量 v_sql
用于存儲查詢語句,然后使用 EXECUTE IMMEDIATE
語句執行動態SQL查詢,并將結果存儲在變量 v_result
中。最后使用 DBMS_OUTPUT.PUT_LINE
輸出查詢結果。
需要注意的是,在動態SQL查詢中,可以使用 USING
子句將變量綁定到查詢語句中的參數,這樣可以防止SQL注入攻擊。