PL/SQLはクエリを実行する方法を提供します。
PL/SQLでは、動的SQLクエリーの実行にEXECUTE IMMEDIATE文を使うことができます。以下に例を示します。
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インジェクション攻撃を防げます。