アプリ版:「スタンプのみでお礼する」機能のリリースについて

symfowareサーバのSQL文をバッチで実行した時、出力したデータをin句に代入したのち、in句のSQL文を実行するにはいかがしたらよろしいでしょうか?
**************************************************************************
SQLin句付き文に出力した番号を入力して別ファイルに出力
select * from sample.post where 番号 in(:test_parameter, '[^,]+', 1, LEVEL) with option lock_mode(no lock)

**************************************************************************
BAT側の処理
@ECHO off
REM 遅延環境変数
@setlocal enabledelayedexpansion

REM DBサーバの変数指定
SET CURDIR=%~dp0
REM SQLフォルダーの変数指定
SET SQLDIR=%CURDIR%SQL\
REM SQLファイルの変数指定
SET SQLNAME=SQL.sql
REM LOGフォルダーの変数指定
SET LOGDIR=%CURDIR%LOG\
REM LOGファイルの変数指定
SET LOGNAME=LOG.txt
REM CSVフォルダーの変数指定
SET CSVDIR=%CURDIR%CSV\
REM CSVファイルの変数指定
SET CSVNAME=番号.csv
REM 変数指定
SET LINE_A=
SET COUNT=0
REM DBサーバの変数指定
CD /D %~dp0

REM テーブルデータをファイルに出力
rdbunlsql -d データベース名 -v D:\SQL\SQL.txt -j SJIS -t D:\LOG\SQL.txt

REM LOGに完了したことの出力
ECHO SQLテーブル呼び出しが完了しました。>> %LOGDIR%%LOGNAME%

REM カラムのみをファイルに出力
rdbexecsql -s データベース名 -i %SQLDIR%SQL.sql > %CSVDIR%%CSVNAME%

FOR /F "skip=1" %%a IN (%CSVDIR%%CSVNAME%) DO @CALL :MYSET %%a

rem for分でコマンドプロンプトに出力したデータを上で出力したファイルに上書き
echo %LINE_A% > %CSVDIR%%CSVNAME%

REM カラムのみファイルにテーブルデータを結合して出力
type %LOGDIR%SQL.txt >> %CSVDIR%%CSVNAME%

REM LOGファイルのテーブルデータを削除しないと二回目が行えない為最後に削除する
del %LOGDIR%SQL.txt

ECHO ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
REM logに完了したことの出力
ECHO 全ての出力が完了しました。>> %LOGDIR%%LOGNAME%

pause

rem サブルーチン
:MYSET
SET /A COUNT=%COUNT%+1

@REM 1行目が正しかったら変数指定されたLINEへSET
IF %COUNT% == 1 (
SET LINE=%1
SET LINE_A=!LINE!
)

@REM 1より大きいければの処理
IF %COUNT% gtr 1 (
SET LINE=%1
SET LINE_A=!LINE_A!,!LINE!
)

@REM EXIT /B で呼び出し元へ戻る
EXIT /B
**************************************************************************

A 回答 (1件)

職場の人に教示してもらったほうが手っ取り早いと思います。



バッチを見るにrdbunlsql使ってるので、echoかなんかでSQL文ファイル作って実行すれば良いと思いますが、それを分かったうえで質問されてるのだとしたら、何が問題点なのかを補足したほうが回答を得られやすいです。

> :test_parameter, '[^,]+', 1, LEVEL
埋め込み変数使ってるんだとしたら、Cプログラムとかですかね。
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。

お礼日時:2021/05/26 15:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す