SQLの実行
最終更新日: 2026年4月15日
開発者が用意したSQLを定期的に実行することができます。
このSQLは、利用するデータベースが提供する文法に準拠する必要があります。
ジョブに指定するパラメータを複数、指定することができます。
paramの値部分に次の特別表記を指定できます。
値はすべて「文字列」としてSQL中に埋め込まれます。PostgreSQLの例を示します。
ジョブを一時的に無効にすることができます。
ジョブの実行結果をメールで送信することができます。 スクリプト内で return で返す文字列がメールの本文になります。
ジョブの多重実行を行うことはできません。
あるジョブを 1 分毎に起動させるようにした場合、1 分後にこのジョブの実行が終了していなければ、新しいジョブは実行されません。
時間指定ではなく、このジョブを今すぐ実行することもできます。「ジョブの即時実行」をお読みください。
オートスケール環境でない場合、常に "1インスタンス" としてください。
オートスケール環境でジョブを運用する場合、"1インスタンス" と "全インスタンス" を選択することができます。[詳細...]
利用方法
例
実行したいSQLはファイルとして用意し、customize/webapp/WEB-INF/classes フォルダに保存してください。ファイルの拡張子は .sql としてください。
設定方法
下図ではキーを「filename」とし、パラメータに「sample.sql」というファイルを指定しています。拡張子は .sql とします。
キーと値の記述方法については、指定できるジョブパラメータをお読みください。
sample.sql
「パスワード」欄には上で指定したアカウントのパスワードを入力します。
ワンポイント
指定できるジョブパラメータ
ここで指定できるパラメータ(キーと値)は次の通りです。
キー(パラメータ名)
必須
説明
値の記述例
filename
○
SQLファイルを指定します。
sample.js
maintenance
このジョブを実行する前にメンテナンスモードに切り替えることができます。ジョブ実行後にメンテナンスモードも終了します。
true
maintenanceOption
メンテナンスモード切り替え時にログオン済みであったアカウントへの対応方法を指定します。
logout : ジョブ実行前にログオンしていたアカウントを強制ログアウトさせる。
fail : ジョブ実行前にログオンしているアカウントがいれば、ジョブを失敗させる。
(省略時) : ログオンしているアカウントはそのままに、モードを切り替える。
param<数字>:説明語
SQLに渡すプレースホルダを指定します。"param<数字>:" の後に続く(空白なしの)文言は、単なる説明語です。
param0:targetdate
param1:startid
この場合param0:targetdateが{0}に、param1:startidが{1}に解釈されます。SQL中に記述された {0}, {1} が、そのパラメータの「値」部分に置換されます。paramの値に指定できる特別表記
YEAR(), MONTH(), DAY(), FISCAL_YEAR()
ここでparam0:yearにYEAR()を指定すると、以下のSQLの{0}部分に(文字列の)年号4桁が埋まります。
INSERT INTO "AT032" (
"CDKYOTEN",
"DTOFF"
)
SELECT
a."CDKYOTEN",
s."DTOFF"
FROM "AT030" a
JOIN "AT032" s
ON s."CDKYOTEN" = 'SB9999'
WHERE a."CDKYOTEN" <> 'SB9999'
AND s."DTOFF" >= TO_DATE({0} || '0101', 'YYYYMMDD')
AND s."DTOFF" < TO_DATE(CAST(CAST({0} AS INTEGER) + 1 AS TEXT) || '0101', 'YYYYMMDD')
AND NOT EXISTS (
SELECT 1
FROM "AT032" t
WHERE t."CDKYOTEN" = a."CDKYOTEN"
AND t."DTOFF" = s."DTOFF"
);ジョブの実行を停止する
実行結果をメールで送信する
多重実行の抑制
すぐに実行する
実行対象