複数の SQL スクリプトを Ingres データベースに適用しようとしています (vnode セットアップを使用)。テスト フェーズでは、4 つのデータベースに対して実行する必要があります。この煩わしさをつぼみに挟もうとして、バッチファイルを開始しましたが、上記のエラーが表示されます。見つかった解決策の多くは、バッチ ファイルが開始時にブロック内のすべてを評価することを示唆していますが、木に対して森が表示されません。:1ST と :2ND の部分が問題を引き起こしている疑いがありますが、それらを実行する必要があります。SQL、バッチ、およびコマンド ウィンドウの出力は以下のとおりです。
UPDATE core SET sysflag='O'
@ECHO off
SET VN1=dave
SET DB1=dbtest1
SET DB2=dbtest2
SET SQL1=open.sql
SET SQL2=open.sql
:MENU
CLS
ECHO 1 - Leave
ECHO 2 - Database1
ECHO 3 - Database2
SET /P M=Choose then press ENTER:
IF "%M%"=="1" GOTO EOF
IF "%M%"=="2" GOTO 1ST
IF "%M%"=="3" GOTO 2ND
GOTO MENU
:1ST
SET DATABASE=%VN1%::%DB1%
GOTO RUNSQL
:2ND
SET DATABASE=%VN1%::%DB2%
GOTO RUNSQL
:RUNSQL
ECHO Applying SQLs to %DATABASE%
SQL %DATABASE% < %SQL1% > log_%SQL1%.txt
PAUSE
SQL %DATABASE% < %SQL2% > log_%SQL2%.txt
PAUSE
GOTO MENU
:EOF
C:\Users\me\BUILD>IF UPDATE core SET sysflag='O'==1 GOTO EOF