メニューボタン
サポートチーム便り2025.09.24

ACS1.1.9.9の新機能!複雑なSQLがデータ転送で実行できちゃう!

Question

前回の配信に
「実はまだまだあるACS1.1.9.9の新機能と組み合わせることで、今回の/PLUGIN=script /file=機能を一層便利に活用できます。」
とあったのですが、どんな新機能でよりよい活用ができるのか気になります。

是非進化したACSの活用方法を教えてください。

Answer

勿論です!

前回の内容と組み合わせることで、より良い新機能とは・・・・/plugin=cldownload です!

昔からあった気がする・・?勘が良いですね・・・・バレましたか・・・とはなりません!

確かに従来の/plugin=cldownloadと組み合わせるだけでも便利に使えます。

しかし1.1.9.9では、この/plugin=cldownload に /sqlfile パラメーターが追加されました。

え?/sqlって前にもあった気が?よくご存じですね・・・

しかしながら、この機能追加は恐らく想像以上のアップデートです。

なんとこれは「SQL クエリを外部ファイルに切り出して、そのファイルを指定してダウンロード処理を実行できる」機能です。

もうちょっと分かりやすく言えば、従来は /sql "SELECT ..." のように 1行で SQL を直書きするしかなく、複雑な SQL を使うと実行が難しかったのですが、これで 複数行の SQL を UTF-8 ファイルに書いて ACS に渡せるようになりました。


◆基本の使い方

  • SQLファイルを作成

    ※UTF-8 エンコードで保存することがポイントです。

    例: query.sql

    SELECT
        CUSTNO,
        NAME,
        SUM(AMOUNT) AS TOTAL_AMOUNT
    FROM MYLIB.SALES
    WHERE ORDER_DATE BETWEEN '2025-08-01' AND '2025-08-20'
      AND STATUS = 'COMP'
    GROUP BY CUSTNO, NAME
    ORDER BY TOTAL_AMOUNT DESC;
  • /plugin=cldownload の実行

    ACS の起動コマンドに /sqlfile を指定します。

    acslaunch_win-64.exe /plugin=cldownload ^
     /system MYIBMI ^
     /user USER1 ^
     /pw mypass ^
     /sqlfile "C:\acs\query.sql" ^
     /outputfile "C:\acs\sales_aug.csv" ^
     /datatype csv
    /sqlfile 実行する SQL を記載したファイル(UTF-8)
    /outputfile 出力ファイル名(CSVやXLSXなど)
    /datatype 出力フォーマット(csv / xlsx / txt など)


◆活用方法の例

  • 複雑な SQL の自動化

    直書きでは困難な 複数行・JOIN・CTE(WITH句) を含むSQLを扱える

    例: 売上明細から部門別・日別の集計を行い、Excelに抽出

    WITH DailySales AS (
      SELECT DEPTNO, ORDER_DATE, SUM(AMOUNT) AS SALES
      FROM MYLIB.SALES
      WHERE ORDER_DATE >= CURRENT_DATE - 30 DAYS
      GROUP BY DEPTNO, ORDER_DATE
    )
    SELECT *
    FROM DailySales
    ORDER BY DEPTNO, ORDER_DATE;
  • 運用バッチへの組み込み

    SQLファイルを変更するだけで抽出内容を切り替え可能

    バッチやスケジューラから呼び出せば、日次・月次レポートを自動生成できます。

    例: 毎朝 6時に売上データを CSV に出力して社内共有フォルダへ保存

  • 開発・検証環境の切り替え

    SQLファイルを同じにしておき、接続先システムだけ /system で切り替えします。

    例:

    acslaunch_win-64.exe /plugin=cldownload /system DEVIBMI /sqlfile report.sql /outputfile report_dev.csv
    acslaunch_win-64.exe /plugin=cldownload /system PRODIBMI /sqlfile report.sql /output

    そして新機能の /plugin=script と組み合わせると、さらに便利に!

  • /plugin=script と組み合わせ

    例: job.txt

    /plugin=cldownload /system MYIBMI /user USER1 /pw mypass /sqlfile "C:\acs\query_sales.sql" /outputfile "C:\report\sales.csv" /datatype csv
    /plugin=cldownload /system MYIBMI /user USER1 /pw mypass /sqlfile "C:\acs\query_stock.sql" /outputfile "C:\report\stock.csv" /datatype csv
    /plugin=runsql /system MYIBMI /user USER1 /pw mypass /sql "CALL MYLIB.REPORT_COMPLETE_LOG()"

    acslaunch_win-64.exe /plugin=script /file=job.txt
    → 複数の SQL 抽出処理をまとめて実行し、最後にログを残すような運用が可能です。


/sqlfile を使えば「SQLを直書きせずに外部ファイル化」できるため、複雑なクエリも管理しやすく、自動化やバッチ処理での活用が格段に便利になります。

by . 大熊猫橋

あわせて読みたい記事

PAGE TOP