将参数从SQL-File传递给过程

时间:2014-10-09 14:04:52

标签: sql oracle sqlplus

可悲的是,我不知道每个部分的确切名称,我可以解释一下: 我们有一个SQL-File,其定义如下:

declare
l_exec boolean := true;
l_print boolean := false;
---  
begin
dbms_output.enable;
for t in (  

等等。我们使用它在我们的Oracle数据库中创建一些触发器等。 现在这个文件增长了很多,我需要拆分它。 所以我创建了一个Main-File,看起来像这样:

SET SERVEROUTPUT on
set feedback off

DEFINE  l_exec  = TRUE;
DEFINE  l_print = FALSE;

ACCEPT ora_instance PROMPT "Zielinstanz angeben [123|...]: " DEFAULT somedefault

CONNECT somelogins

PROMPT  -- GENERATING CODE --
@file1 l_print, l_exec

这样可以正常工作,但我想将l_exec和l_print传递给每个文件。我读了一些其他的Threads传递参数,这样就可以了。但问题是:我不仅需要将其从文件传递到文件,而且我需要在开始后将其传递给Procedure-Block。

我不确定我是否理解它,但我想使用我在文件的开始块中传递给@ file1的变量。

这种情况有可能吗?我搜索了很多关于SQLPlus的内容,但到目前为止还没有找到解决方案。

一如既往地感谢,一周感人愉快

的Matthias

1 个答案:

答案 0 :(得分:1)

好的,所以如果您的主文件有对子文件的调用:

...
CONNECT somelogins

PROMPT  -- GENERATING CODE --
@file1 l_print, l_exec

然后您的子文件可以按位置方式使用参数:

declare
l_print boolean := &1;
l_exec  boolean := &2;
---  
begin
dbms_output.enable;
for t in (