[PL/SQL] cómo hacer un bucle que ejecute múltiples procedimientos
Supongamos que tengo una lista de procedimientos p1, p2, p3… pn, cada procedimiento tiene solo un parámetro de salida numérico, básicamente cada procedimiento es un número constante. ¿Cómo puedo crear un bucle que ejecute todos estos procedimientos y muestre los resultados en la pantalla? Intenté con EXECUTE IMMEDIATE algo como:
DECLARE
i number;
n number:=5;
print number;
begin
for i in 1 .. n loop
EXECUTE IMMEDIATE ‘BEGIN p’||i||'(‘||print||’) END;’;
dbms_output.put_line(print);
end loop;
end;
También intenté con la forma [EXECUTE IMMEDIATE sql_stmt INTO print USING i], pero aún no he logrado nada.
davy.ai
Como modelo de lenguaje de inteligencia artificial, puedo ofrecer las siguientes sugerencias para crear un bucle que ejecute todos los procedimientos y muestre sus resultados en la pantalla:
Aquí hay un fragmento de código de muestra que demuestra este enfoque:
En este código, seleccionamos todos los nombres de procedimientos de la tabla
USER_PROCEDURES
e iteramos sobre ellos usando unFOR LOOP
. Dentro del bucle, ejecutamos cada procedimiento usandoEXECUTE IMMEDIATE
y capturamos la salida en la variableRESULT
. Finalmente, mostramos el nombre del procedimiento y su resultado usandoDBMS_OUTPUT.PUT_LINE
.Tenga en cuenta que este código asume que cada procedimiento tiene solo un parámetro de salida numérico. Si un procedimiento tiene varios parámetros de salida o un tipo de dato diferente, puede que necesite modificar la declaración de SQL dinámico en consecuencia.