コンテンツにスキップ

データ取り込み

IO操作画面 で「データの取り込み」ボタンをクリックすると、データの取り込みダイアログが開きます。データが入力された入力シートを元に SQL を生成し、データベースへ反映します。

データ取り込みダイアログ画面構成

Section titled “データ取り込みダイアログ画面構成”

データ取り込みダイアログ

データ取り込みダイアログ上部

No.エリア内容
①テーブルグループ情報パネル呼び出し元の IO操作画面で選択されていたテーブルグループ名と、選択済みテーブルの一覧を表示します
②入力シートのパス入力欄データ取り込み元となる入力シートのパスを指定します(アプリDBごとに記憶されます)
③出力するSQLファイルのパス入力欄実行したSQLを保存するファイルのパスを指定します(アプリDBごとに記憶されます)
③-1SQLファイル出力スキップONにすると、SQLの実行のみを行いファイルへの保存を省略します

データ取り込みダイアログ中間部

No.エリア内容
④データ取り込みオプションパネルデータ取り込み処理の各種オプションの設定入力エリアです
④-1SQLの種類実行する処理種類をINSERT/UPDATE/UPDATE or INSERT(UPSERT)/DELETE から選択します
④-2SQL出力のみONにすると、SQLファイルを出力するだけで実際の実行は行いません(入力シートの処理結果も更新されません)
""項目に不一致があっても実行する入力シートとテーブルの項目が完全に一致しなくても、一致する項目だけでSQLを生成して実行します
""DELETE時にテーブル順・行順を逆順にするSQLの種類がDELETEのときのみ操作可能。詳細は 外部キー参照のあるテーブルへのデータ挿入及び削除手順(重要) を参照
④-3INSERT文1行当たりの項目数1〜10の範囲で指定します
④-4パラメータ化クエリを使用するSQLインジェクション対策としてパラメータ化クエリを使用するかどうかを指定します。「SQLファイル出力スキップ」がONの場合でも常に操作可能です(エラー時に入力シートへ書き込むSQL表示の書式に影響するため)
④-5インデントサイズSQL生成時のインデント幅を指定します

INSERT文とUPDATE文のスタイルタブ

Section titled “INSERT文とUPDATE文のスタイルタブ”

データ取り込みダイアログ中間部Insert文とUpdate 文のスタイルタブ

No.エリア内容
④-6INSERT文のスタイル項目リストや値リストの前後に付ける()の位置、及び各項目の区切りの「,」の位置を4つのパターンから選択します
④-7UPDATE文のスタイルSET句の位置、項目値設定句の「,」の位置、及びWHERE句内のAND/ORの位置を4つのパターンから選択します
  • それぞれのスタイルを選択したときに生成されるSQLの具体的な書式は データ取り込みの詳細 で例示しています

データ取り込みの実行とSQLファイル出力の実行制御

Section titled “データ取り込みの実行とSQLファイル出力の実行制御”
  1. データ取り込みダイアログでは、取り込み対象の入力シートを指定すると、既定で入力シートと同じフォルダに実行されるSQLスクリプトファイルを出力します。既定のSQLファイル名は、入力シート名の先頭から最後に現れる _(アンダースコア)までを切り取り、末尾に実行するSQLの種類(INSERT/UPDATE/UPSERT/DELETE)を付けたものになります。

    既定のデータ取り込み処理のオプション

  2. SQLファイルの出力が不要な場合は、「SQLファイル出力スキップ」チェックボックスをONにします。これにより、SQLファイルの出力先パス入力欄と「SQL出力のみ(実行をスキップ)」チェックボックスは使用できなくなります。

    SQLファイルの出力をスキップ

    • このオプションを使用するのは、開発環境やテスト環境でテストデータを手早く投入したり削除したりする場合です。
  3. 逆に、SQLファイルの出力のみを行い、入力シートから直接データ取り込みを行うのを禁止する場合は、「SQL出力のみ(実行をスキップ)」チェックボックスをONにします。

    SQLの出力のみ(実行をスキップ)

    • このオプションを使用するのは、本番環境などSQExcelから直接データベースへ接続しない環境向けに、SQLスクリプトだけを作成してリリース手順に乗せたい場合です。

処理が完了すると、入力シートの各行の「処理成否」列・「処理失敗時メッセージ」列に結果が書き込まれます。テーブルごとの処理結果表示エリア(B2セル)には、成否のメッセージに加えて実行したSQLの種類(INSERT/UPDATE/UPSERT/DELETE)のラベルが先頭に付与されます。

INSERT処理が成功した入力シートの処理結果

Section titled “INSERT処理が成功した入力シートの処理結果”

SQL処理種別=INSERTによる取り込み処理が成功した入力シート

DELETE処理が成功した入力シートの処理結果

Section titled “DELETE処理が成功した入力シートの処理結果”

SQL処理種別=DELETEによる取り込み処理が成功した入力シート

取り込みエラーが発生した入力シートの処理結果

Section titled “取り込みエラーが発生した入力シートの処理結果”

SQL処理種別=INSERTによる取り込み処理でエラーが発生した入力シート

入力シート上で取り込みエラーとなった行は処理成否がFALSEとなり、処理失敗時メッセージが表示されます。処理失敗メッセージにはエラーの原因と、実行されたSQLスクリプトが表示されます。

エラーになった行の処理失敗時メッセージ

テーブルとワークシートの項目・型不一致でエラーになる場合

Section titled “テーブルとワークシートの項目・型不一致でエラーになる場合”

「項目に不一致があっても実行する」がOFFの状態で入力シートとテーブルの項目・型の不一致によるエラーの場合は、処理結果欄に具体的に不一致となった項目情報を表示します。

テーブル項目とワークシート項目の不一致エラー

入力シートの取り込みがスキップされた場合は処理成否列と処理失敗時メッセージ列は空白になります。

データ取り込みがスキップされた場合の処理成否と処理失敗時メッセージ

※「項目に不一致があっても実行する」がONの場合は不一致項目を除いてデータ取込み用SQLが生成され、処理は実行されます。必須入力項目が不一致項目である場合にはその入力シート全体がエラーとなります。

データの入力ルールのポイント

Section titled “データの入力ルールのポイント”
ルール内容
入力エリアに空白行が現れた場合データ取り込みを行う行をここで停止します。空白行の後方にデータが入力されている行が続いてもそれらは無視されます。
入力対象行の「*」マークを削除した項目列実行するデータ処理からこの項目を除外します。実行するSQLの種類が INSERT/UPDATE/UPDATE or INSERT(UPSERT)の場合に反映されます。出力されるSQLスクリプトにもこの設定が反映されます。

入力エリアの空白行と入力対象行の「*」マークを削除した項目列

  • 入力対象行の「*」マークを削除するのは、データ作成日時や更新日時のように既定値が設定される項目です。既定値が設定される項目は項目属性列に「D」が表示されます。
ルール内容
NULLを指定するセルに (null) または (NULL) と入力する。あるいは項目の入力対象を外す(* を消す)
空文字列を指定する文字列項目のセルに \EMP または \emp と入力する
真偽値TRUE / FALSE / YES / NO / 1 / 0 のいずれかで入力する(大文字小文字は区別しない)
バイナリ(BLOB等)16進数文字列で入力する

データ型ごとの入力可能な値・エラーになる値の詳しい境界は データ取り込みと入力シート を参照してください。