ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
エラーメッセージ
SQL3100W The column number "XXX" in row number "XXX" and column "XXX"
is missing in the input file, but the target column is not nullable.
SQL3185W The previous error occurred while processing data from row "XXX"
of the input file.
IBM DB2 の LOAD / IMPORT / db2 LOAD CLIENT ユーティリティでデータをロードする際、入力ファイルの列数が不足していると出る警告です。NOT NULL 制約の列を埋められないため、該当行が拒否されます。
原因と対処早見表
| 原因 | 確認 | 対処 |
|---|---|---|
| 入力 CSV の列数不足 | 1 行 1 列の数を awk -F, '{print NF}' で確認 | 列を補う or NULL 許可 |
| 区切り文字違い | CSV なのに TAB だったり | MODIFIED BY COLDEL= 指定 |
| METHOD 不一致 | テーブル定義列順とファイル列順が違う | METHOD P (1,2,3) 明示 |
| ヘッダ行を含めて LOAD | 1 行目が文字列で型違反 | MODIFIED BY SKIPCOUNT=1 |
| 改行コード混入 | VARCHAR 内に CR/LF | MODIFIED BY DELPRIORITYCHAR や CSV 整備 |
基本構文の確認
-- 典型的な LOAD コマンド
LOAD FROM data.csv OF DEL
MODIFIED BY COLDEL, -- 区切り文字をカンマに
CHARDEL'"' -- 文字列引用符
SKIPCOUNT=1 -- 先頭1行スキップ(ヘッダ)
METHOD P (1,2,3,4) -- 1〜4列目を使う
REPLACE INTO MYSCHEMA.USERS (ID, NAME, EMAIL, CREATED_AT)
NONRECOVERABLE;
対処1: 入力ファイルの列数を数える
# CSV の列数を確認
head -1 data.csv | awk -F, '{print NF}'
# → 5 ← テーブル列数と一致しているか?
# 行ごとに列数が違う行を探す
awk -F, '{print NR ": " NF " cols"}' data.csv | sort -u -k2 -n | head
# 列不足の行を抽出
awk -F, 'NF<5 {print NR": "$0}' data.csv
対処2: 列順を METHOD P で明示
入力ファイルとテーブル定義で列順が異なる場合は METHOD P で明示マッピング:
-- テーブル: (ID, NAME, EMAIL, AGE)
-- 入力CSV: NAME,EMAIL,AGE (ID は省略 → DB2 が自動採番想定)
LOAD FROM data.csv OF DEL
MODIFIED BY COLDEL,
METHOD P (1,2,3) -- 入力の1,2,3列目を使う
INSERT INTO MYSCHEMA.USERS (NAME, EMAIL, AGE)
NONRECOVERABLE;
-- → ID は IDENTITY か DEFAULT で埋まる必要あり
-- 列の順序を入れ替え(CSV: EMAIL,NAME,AGE → テーブル: NAME,EMAIL,AGE)
LOAD FROM data.csv OF DEL
MODIFIED BY COLDEL,
METHOD P (2,1,3) -- 2列目=NAME, 1列目=EMAIL, 3列目=AGE
INSERT INTO MYSCHEMA.USERS (NAME, EMAIL, AGE)
NONRECOVERABLE;
対処3: 文字位置で指定(固定長ファイル)
固定長 (ASC) ファイルの場合は METHOD L で位置範囲指定:
LOAD FROM fixed.dat OF ASC
METHOD L (1 10, 11 30, 31 80, 81 90)
INSERT INTO MYSCHEMA.USERS (ID, NAME, EMAIL, AGE)
NONRECOVERABLE;
-- 1-10桁=ID, 11-30桁=NAME, 31-80桁=EMAIL, 81-90桁=AGE
対処4: NULL を許容して取り込む
欠損行を NULL として通したい場合:
-- 該当列を ALTER で NOT NULL → NULLABLE に
ALTER TABLE MYSCHEMA.USERS ALTER COLUMN EMAIL DROP NOT NULL;
-- または COLUMN DEFAULT を設定
ALTER TABLE MYSCHEMA.USERS
ALTER COLUMN EMAIL SET DEFAULT 'unknown@example.com';
-- LOAD 時は USEDEFAULTS で明示
LOAD FROM data.csv OF DEL
MODIFIED BY COLDEL, USEDEFAULTS
METHOD P (1,2,3,4)
INSERT INTO MYSCHEMA.USERS;
拒否行の調査
SQL3100W が出ると、拒否行は exception/dump ファイルに残ります:
LOAD FROM data.csv OF DEL
MODIFIED BY COLDEL,
METHOD P (1,2,3,4)
WARNINGCOUNT 1000 -- 警告 1000 件まで継続
MESSAGES /tmp/load_msg.txt -- ★ ログファイル
DUMPFILE /tmp/dump.bin -- ★ 拒否行を記録
INSERT INTO MYSCHEMA.USERS;
-- 終了後ログを確認
-- cat /tmp/load_msg.txt | grep SQL3100W
-- → どの行・どの列が問題か特定できる
関連メッセージ
| メッセージ | 意味 |
|---|---|
| SQL3100W | 列が入力ファイルに不足 |
| SQL3110N | FROM 句のファイルが開けない |
| SQL3125W | 文字列が長すぎ、切詰めた |
| SQL3137W | カラム値が NULL だが NOT NULL 制約あり |
| SQL3185W | 前の行のエラーで拒否 |
| SQL3550W | IDENTITY 列の値がファイルにある(GENERATED ALWAYS) |
よくあるトラブル
| 症状 | 原因 | 対処 |
|---|---|---|
| 全行 SQL3100W で拒否 | 区切り文字違い(カンマ vs タブ) | MODIFIED BY COLDEL, 明示 |
| 1 行目だけエラー | ヘッダ行混入 | MODIFIED BY SKIPCOUNT=1 |
| VARCHAR 内に改行 | 改行を行区切りと誤認 | CSV 整備 or DELPRIORITYCHAR |
| IDENTITY 列でエラー | GENERATED ALWAYS で値指定 | MODIFIED BY IDENTITYIGNORE |
FAQ
Q: 警告だけで完了したように見えるがデータが入っていない
A: SQL3185W で全行拒否されている可能性。SELECT COUNT(*) FROM target で実際の取り込み件数を確認し、MESSAGES / DUMPFILE オプションで拒否ログを取得してください。
Q: 大量の SQL3100W を抑止したい
A: 根本対応として CSV の整備が必要です。WARNINGCOUNT で停止閾値を変更すると暴走を防げます。
Q: PostgreSQL / MySQL でも同じ警告がある?
A: 番号は違いますが、NOT NULL 列に値が無い場合の警告は共通です。PostgreSQL COPY なら "null value in column violates not-null constraint"、MySQL LOAD DATA なら "Column 'x' cannot be null"。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
同階層のページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?