im8*_*bit 3 sql oracle plsql sqlplus
我有一个目录,我想运行PLSQL脚本,问题是该目录的内容是动态的,我无法知道这些脚本的名称是什么.
我必须编写一些东西来运行该目录中的所有sql文件,但我无法在PLSQL中找到一种方法来调用脚本,该文件名在运行时是未知的.
我尝试了一些东西,比如将.sql文件内容加载到VARCHAR2然后再做
EXECUTE IMMEDIATE l_Script_Content;
但由于某些原因,这只是不起作用,我想必须有一个更简单的方法来做到这一点,比如突然@命令接受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