ファイル - datファイルで来たデータをDBに登録したい|teratail
https://teratail.com/questions/357899

この手のDB操作はバッチ処理の基本なのですが、質問が不明確なこともあり、明快な回答がつかない
ケースが多いです。大きく処理パターンとしては、2つ。

(1)ストアード・プロシージャーでdatファイルそのものを読み込むパターン
自力でファイルのパースをしながら入力チェックして、そのままテーブルに突っ込みます。
commitはデータの整合性が取れる適切なタイミングで実施します。

(2)データロード用のコマンドで一旦別テーブルに読み込んでから処理するパターン
CSVのフォーマットなどを指定して、データロード用のコマンドで高速に別テーブルに読み込みます。
別テーブルに読み込まれたデータをストアード・プロシージャーなどで入力チェックしてから、
ターゲットのテーブルに突っ込みます。
コマンドでの読み込みはコミットタイミングを自由に決められ、入力チェックはフォーマットのみで
コマンドに依存したエラー出力になります。ストアード・プロシージャーなどによる入力チェックは
フォーマット以外のチェックになり、commitはデータの整合性が取れる適切なタイミングで実施します。

大きいデータや既存データとの整合確認など複雑な入力チェックが必要なら(2)の方がいいでしょう。

質問の要件からは外れますが、バッチ処理ではなくアプリケーション側で登録処理することも出来ます。
ただしDB側だけで処理できる(1)や(2)の方が高速です。しかし、似たような機能をアプリケーション側で
持つ場合に入力チェックの場所がアプリケーション側とDB側で重複したり共通化するとDB側に入るなど、
バッチにするとストアード・プログラムやDBへの依存度が上がります。