2

数値変数が 1 つあります (一部のビジネス要件のために Oracle DB に VARCHAR2 として格納されます)。バッチ ファイルは、ユーザーが数値を入力する必要があるユーザーからこの変数を受け入れます。

ユーザーが文字を入力していないかどうかをバッチファイルで確認し、そうであれば、ユーザーが数値変数を入力する必要がある入力の開始に制御をリダイレクトします。

入力がない場合、この数のデフォルト値は、ストアド プロシージャの呼び出し時に割り当てられます。

私はこれまでのところ以下のコードを持っています:-

}:enter_input
set nullinp=
set input=
echo.
set /P input="Enter the input (default size is 50): "
echo.
if "%input%"=="%nullinp%" (
set /A input= -1)

:validate_input
echo select to_char('%input%') from dual; > %dir%\validate_input.txt
echo exit >> validate_input.txt

echo "%dbpwd%" | %connStr% @%dir%\validate_input.txt > %log%\validate_input.log

findstr "ORA-" %log%\validate_input.log
if %ERRORLEVEL% NEQ 0 goto message1
if %ERRORLEVEL% EQU 0 goto catch_error

:catch_error
   cls
   echo.  
  echo "ERROR ==> Check no entered"
  echo 
  echo.
  echo.
  goto enter_input

上記に条件を追加して、入力された入力に文字値が含まれているかどうかを確認したいと思います。その後、コントロールは :enter_input に戻る必要があります。

ありがとう。

4

3 に答える 3