No conozco C#, pero supongo que solo puede enviar declaraciones SQL individuales o bloques PL/SQL, no una lista separada por punto y coma. En cualquier caso, exec
no es ninguno de los dos (es un acceso directo de SQL*Plus compatible con algunos IDE).
Probablemente necesite enviar comandos separados como algo como:
create directory test_dir as 'C:\\'
y
begin run_query('SELECT {1} FROM {2} {3} ORDER BY {4}','TEST_DIR','{5}'); end;
(Tenga en cuenta que PL/SQL usa punto y coma, pero SQL no tiene un terminador de declaración nativo, aunque las herramientas a menudo requieren un carácter de terminador y el punto y coma suele ser el valor predeterminado).