在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注入攻击。