<p>I have two SQL scripts which get called within a loop that accept a number parameter. Here is what I'm currently using:</p>

<pre><code>for /l %%i in (1, 1, 51) do (
    sqlplus u/p@name @script.sql a%%i.html %%i
    sqlplus u/p@name @script.sql b%%i.html %%i
)
</code></pre>

<p>Everything works fine, but it seems like a waste of time and resources to connect twice for each pass through. Is there a way I could simply log into sqlplus, run the for loop, then exit? I tried many alternatives such as putting</p>

<pre><code>sqlplus u/p@name
</code></pre>

<p>before the for loop, but then it would simply hang at the SQL> prompt without executing any of my two scripts.</p>

<p>Thank you.</p>

You can create a masterscript.sql that contains your two script.sql statements.
The only thing I'm not sure about is if it will pass in your variables.
MasterScript.sql would contain:
```
```
@@script1.sql
@@script2.sql
```
```
and neither of your sub-scripts should contain an exit.
Differences between "@" and "@@"
:
http://www.orafaq.com/wiki/SQL
*Plus_FAQ#What_is_the_difference_between_.40_and_.40.40.3F