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

时间:2010-11-26 16:36:49

标签: sql oracle plsql sqlplus

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

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

我尝试过将.sql文件内容加载到VARCHAR2然后执行

之类的操作
EXECUTE IMMEDIATE l_Script_Content;

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

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

谢谢!

2 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:0)

将此安装脚本保存在同一文件夹中,例如 - " current_folder_location /"所有plsql文件都以.sql格式退出 你可以在unnixbox,sqlplus,sql Developer中触发它:

find()