在另一个plsql脚本中调用plsql脚本

im8*_*bit 3 sql oracle plsql sqlplus

我有一个目录,我想运行PLSQL脚本,问题是该目录的内容是动态的,我无法知道这些脚本的名称是什么.

我必须编写一些东西来运行该目录中的所有sql文件,但我无法在PLSQL中找到一种方法来调用脚本,该文件名在运行时是未知的.

我尝试了一些东西,比如将.sql文件内容加载到VARCHAR2然后再做

EXECUTE IMMEDIATE l_Script_Content;
Run Code Online (Sandbox Code Playgroud)

但由于某些原因,这只是不起作用,我想必须有一个更简单的方法来做到这一点,比如突然@命令接受varchar2而不是完整路径.

谁能指出我正确的方向?也许从java运行脚本?

谢谢!

mil*_*lan 13

PL/SQL不适合这项工作.最简单的方法是使用某种shell脚本(例如BASH)来构建一个SQL文件并运行它.像这样:


bash> EXPORT IFS="
"
bash> for FILE in `ls -1 *.pls``;  # single backtick here -_-
  do echo "start "$FILE >> run.sql;
done;

sqlplus> start run.sql