
No.3ベストアンサー
- 回答日時:
■APPENDで主キー重複が起きるか?
ダイレクトパスロードか否かで、結果が変わります。
LoaderのオプションがDIRECT = TRUE、かつダイレクトモード可能な条件を満たしている場合、ダイレクトパスロードとになります(素晴らしく速い)が、APPENDモードで主キー重複のレコードができてしまいます。
主キーが重複した場合、主キー制約/インデックスが無効状態になっており、INSERT/DELETE/主キーのUPDATEがエラーになってしまいますので、ご注意ください。
その場合は、TRUNCATE TABLEでいったんデータを消してしまえば、復活できます。
ダイレクトパスロードでない場合のAPPENDモードでは、主キー重複はエラーではじかれます。
■REPLACEの動き
PKが重複するものの入れ替えではなく、まるっと削除してからの追加になります。
TRUNCATEとの違いは、途中でエラーが発生したときにレコードが削除する前の状態に戻る点です。
レコードが消えて良いならTRUNCATEモードのほうが速いですね
ご回答ありがとうございます。
詳しい解説ありがとうございます。
DELETEとTRUNCATEの違いはそんなところにあったんですね...
No.2
- 回答日時:
>これはテーブルのPKが重複していても新しく行がついかされるということでしょうか?
そんなことになったらprimary keyの意味が全くないと思いますが・・
一意制約違反になります。
>逆にREPLACEはPKが重複しているデータに上書きされるということでしょうか?
上書きというか、対象テーブルの全データをdeleteしてからinsertします。
http://download.oracle.com/docs/cd/E16338_01/ser …
No.1
- 回答日時:
> これはテーブルのPKが重複していても新しく行がついかされるということでしょうか?
PKの重複エラーになります。
> 逆にREPLACEはPKが重複しているデータに上書きされるということでしょうか?
現在テーブルにあるデータを全件削除(DELETE)して、データをINSERTします。
通常はREPLACEよりかは、TRUNCATEを使うと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
SQL*Loaderでのsysdate使用
Oracle
-
sql*loader 数値のロード
Oracle
-
-
4
SQL*LoaderでCSVから指定した列のみインポートしたい。
Oracle
-
5
データ削除とSQL*Loaderでのインポート
Oracle
-
6
SQL*Loaderで、データを加工してロードしたいです。
Oracle
-
7
SQL*Loader フォーマット変換について
Oracle
-
8
SQL*Loaderのコミットポイント設定がうまくいってない?
Oracle
-
9
SQLLOADER
Oracle
-
10
SQLローダーで複数のCSVファイルのデータを一つのテーブルにInsertしたい
その他(データベース)
-
11
SQLPLUSで結果を画面に表示しない
Oracle
-
12
SQL Loaderを使いたい
Oracle
-
13
SQL*Loader
Oracle
-
14
badファイルの内容を知る方法
その他(データベース)
-
15
CSVファイルを読み込んでテーブルの更新
Oracle
-
16
SQL*LOADER実行時のロードデータチェック
Oracle
-
17
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
18
シェルスクリプトでオラクルのエラーメッセージを取得するには
Oracle
-
19
Oracleでの文字列連結サイズの上限
Oracle
-
20
PL/SQLで@ファイル名が反応しません
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
引数によってwhere句を切り替え...
-
単一グループのグループ関数で...
-
トランザクションログを出力せ...
-
SQLで条件にヒットしたレコード...
-
【PL/SQL】FROM区に変数を使う方法
-
トリガからプロシージャのコー...
-
データ
-
SQL*Loader Append
-
Oracleですがsqlで質問です。 ...
-
oracle DB内のデータを増幅す...
-
SELECT FOR UPDATE で該当レコ...
-
アクセスのレポートでレコード...
-
デフォルトでデータが表示され...
-
AccessのSQL文で1件のみヒット...
-
where句中のtrim関数について
-
Oracle10gからkeySQLで集計データ
-
group byの並び順を変えるだけ...
-
大量レコードをTRUNCATEせずに...
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
単一グループのグループ関数で...
-
SELECT FOR UPDATE で該当レコ...
-
【PL/SQL】FROM区に変数を使う方法
-
where句中のtrim関数について
-
データ
-
SQL*Loader Append
-
AccessのSQL文で1件のみヒット...
-
引数によってwhere句を切り替え...
-
トランザクションログを出力せ...
-
updateで複数行更新したい
-
アクセスのレポートでレコード...
-
group byの並び順を変えるだけ...
-
「数字で始まらない」ものを抽...
-
osqleditについて
-
SQLで条件にヒットしたレコード...
-
デフォルトでデータが表示され...
-
BLOB型項目をSQLの検索条件に指...
-
1レコード全てを改行なしで表...
-
トリガからプロシージャのコー...
-
PL/SQLでフェッチでNULLの項目...
おすすめ情報