SQLアクション¶
「SQLアクション」はSQLのSELECT文を直接記述して実行することのできるアクションです。
「SQLアクション」拡張オプションをCELF へ登録すると、アクションセットを組み立てる設定画面に「SQL」カテゴリのアクションが追加されます。
「SQLアクション」拡張オプションのダウンロードについてはこちら
参考
拡張オプションの登録については、 拡張オプションを登録する を参照してください。
SQLを使ってテーブルからデータを取得する¶
入力フィールドに実行するSQLを記載し、アクションセットを保存します。 取得したデータは指定したセルを起点に表示します。
注意
1アクションでは1つのSQL文を設定してください。
- 取得するカラム名は明示してください。記載した順序でセルに表示されます。「*(アスタリスク)」を使って全カラム取得することも可能ですが、取得するカラムの順番は保証されません。
SELECT文以外のSQLは登録することができません。登録、更新、削除については、データ操作に関連するアクション を利用してください。
検索条件をパラメータで指定する¶
SQL文内ではパラメータの指定による条件値の設定が可能です。 パラメータ名(任意の文字列)を「%」で囲ってSQL文内に記載します。
注意
SQLパラメータ名は半角英数字のみ使用できます
パラメータ名に対応する値は「SQLパラメータ設定」ダイアログにて設定してください。
![]()
ヒント
- IN句内のパラメータを設定する場合は「IN句用パラメータ」をチェックして、値にはセル範囲を設定します。
![]()
SQLアクションに関する注意事項¶
SQL文についてはSQL標準に則っています。そのため、以下の制限事項があります。
- データベース固有の構文は使用できない場合があります。
- カラム名、テーブル名に利用できない文字があります。
- 名前が数字で始まるテーブル、カラムは利用できません。
SQLの予約語と同じ名前の関数は利用できません。(例:LEFT関数、RIGHT関数)
以下の場合は必ずカラムに別名を指定してください。
- テーブルの結合等によりSQL文内のカラム名が重複する場合例)SELECT t1.カラム1 AS t1_column1, t2.カラム1 AS t2_column1 FROM テーブル1 t1, テーブル2 t2
- 関数(COUNT、SUMなど)を利用して結果を取得する場合例)SELECT カラム1, SUM(カラム2) AS 合計 FROM テーブル1 GROUP BY カラム1
- CELFデータベースはもちろん、ODBC接続やJDBC接続された外部データベースのテーブルでも利用できます。ただしテーブルの結合を行う場合、同じ接続先データベースにあるテーブルに限ります。(他システムや他接続先のデータベースとは連携できません。)
- SQLを式やセル参照で指定する場合は、事前に公開時テーブル切替えの設定を行うことができません。(SQLを直接入力した場合は、テーブル切替えの設定が可能です。)ただし、同じアプリで同じテーブルに対するデータ操作系アクションがある場合、そのテーブルに対してテーブルの切替えを設定すると、式やセル参照で指定した場合でも設定された切替情報に従ってSQLアクションも動作します。
SQL文のサイズ上限は約60,000バイトです。ただし、接続先のデータベースにサイズの制限がある場合はそれらが上限となります。
SQLアクションに関する小技/逆引き¶
- SQLのLEFT関数、RIGHT関数と同様のデータを取得する。
一度データをセルに展開してCELFのLEFT関数、RIGHT関数を利用することで可能です。ここではSQLにCELF関数を文字列として設定しておく方法をご紹介します。
- SQLアクションに以下のようなSQLを指定する。
例)SELECTcode AS code ,"=LEFT(INDIRECT(ADDRESS(ROW(), COLUMN()-1)), 1)" AS initialFROM テーブル1![]()
- このアクションを実行する。
D列にはSQLで記載した関数がそのままセルに設定されますので、関数が実行された結果が表示されます。
![]()
SQLアクションに関するよくあるご質問¶
SQLアクション に関するよくあるご質問を紹介します。
[FAQ000142]SQLアクションを使用してアクションセットを保存すると「SQLが正しくありません。」が表示されます
[FAQ000175]SQLアクションの実行時のSQL文を確認する方法は?
[FAQ000141]2つのテーブルを比較し、一致しないデータを検索するには?
