PL/SQL で動的 SQL ステートメントを実行の方法

実行時に動的に生成されたSQL文を実行するには、PL/SQLのEXECUTE IMMEDIATE文を使用できます。

以下は、EXECUTE IMMEDIATEを使用して動的SQL文を実行する方法の例です。

DECLARE
  sql_stmt VARCHAR2(200);  -- 动态SQL语句字符串
  emp_count NUMBER;        -- 变量用于存储结果
  
BEGIN
  -- 构建动态SQL语句
  sql_stmt := 'SELECT COUNT(*) FROM employees WHERE department_id = :dept_id';
  
  -- 执行动态SQL语句并将结果存储到变量中
  EXECUTE IMMEDIATE sql_stmt INTO emp_count USING 50;
  
  -- 输出结果
  DBMS_OUTPUT.PUT_LINE('部门中的员工数:' || emp_count);
  
END;
/

上の例では、まず動的SQL文を格納する変数sql_stmtを宣言しています。次に、EXECUTE IMMEDIATE文を使用して動的SQL文を実行し、USING句を使用してパラメータを動的SQL文に渡しています。最後に、結果をemp_count変数に格納し、DBMS_OUTPUT.PUT_LINE文を使用して結果を出力しています。

動的SQLを実行するには、動的SQLを実行する権限を持つユーザーに適切な権限を与える必要があります。

bannerAds