問題タブ [sql-loader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
16068 参照

oracle - 本当に列の処理をスキップする方法は?

(CSVファイルから)データをOracleデータベースにロードするために、SQL*Loaderを使用します。

これらのデータを受け取るテーブルにはvarchar2(500)、と呼ばれる列がありますCOMMENTS。何らかの理由で、CSVファイルからこの情報を無視したいと思います。したがって、私はこの制御ファイルを作成しました。

COMMENTSデータベースのフィールドは常にに設定されているため、このコードは正しく機能しているようnullです。

ただし、CSVファイルに、対応するCOMMENTSフィールドが500文字の制限を超えるレコードがある場合、SQL*Loaderからエラーが発生します。

私のフィールドの処理を本当に除外する方法はありますか?COMMENTS

0 投票する
1 に答える
3320 参照

database - Oracle SQLLoader(sqlldr)のインポートで引用符と改行をエスケープするにはどうすればよいですか?

FIRST:はい、CONCATENATEとCONTINUEIFについては知っていますが、ドキュメントを理解するのに十分な知識がない可能性があります。私は彼らが私の問題をどのように解決するかを「理解」していません。ありがとうございました...

私は、sqlldrを介してOracleDBにインポートするためのファイルを作成する必要がある立場にあります。

列は「〜」で区切る必要があります(質問しないでください)。ファイルファイルを作成する際に、引用符と改行に関してsqlldrがどのように動作するかについていくつか懸念があります。

単純な行に列の値を含める場合:

これをファイルに出力するにはどうすればよいですか?私の最初の推測は

CTLファイルで指定された「〜」オプションで囲まれたフィールドでインポートするのは簡単だと思います。処理方法がわからないのは、ファイルを作成するときの「いいね」の周りの引用符です。さらに逃げる?どうやって?

追加のボーナス質問:フィールドにはラインブレーキが含まれる場合があります。「生」と書いてあると

これらを「つなぎ合わせる」ために使用できるオプションがCTLファイルにありますか?ブレークは異なる列で発生する可能性があり、レコードまたは列ごとに複数のブレークが存在する可能性があります。

前もって感謝します!

0 投票する
3 に答える
1961 参照

c# - SQLローダーでインポートするためのデータの改行を処理する方法

私はフロントエンド開発者であり、後で別のOracleデータベースにインポートするためにOracleストアドプロシージャからテキストファイルにデータをエクスポートするC#アプリケーションを作成しています。データはSQLローダー(sqlldr)で読み込まれ、SQLローダーで処理しやすい形式でファイルを出力できるように、そのツールの機能を理解しようとしています。

列データの改行を処理する方法がわかりません。一部の列は説明であり、改行が含まれている場合があります。データの改行の数が一定でない可能性を処理するためのオプションがSQLローダーに見つかりません。

センテンス値を使用してテキストファイルのレコードを終了または開始してから、CONTINUEIFを使用できるようです。次に、データ内のセンテンス値の処理の問題が発生します。

この特定のアプリケーションにとって重要ではありませんが、データの忠実度を低下させたくないので、私はただ休憩を取り除くことを躊躇しています。

これにどのようにアプローチできるかについてのアイデアはありますか?

ありがとう!

0 投票する
1 に答える
7764 参照

oracle - OracleSqlLoader制御ファイルの問題

SQLローダーを使用していくつかのデータを読み込もうとしています。これが私のコントロール/データファイルの先頭です:

...他の多くのデータライン。

問題は、SQLローダーが指定しているデータ型を認識しないことです。これはログファイルです:

...多くの同様のエラー。charデータを数値列に挿入しようとすると予想されます。

私はデータ型の仕様、他のすべての数値の仕様、そして常に同じ問題を試していません。何か案は?

また、Rowsパラメーターを変更する理由についてのアイデアはありますか?

0 投票する
4 に答える
67970 参照

oracle - Oracle Sql Loader を使用してタイムスタンプ フィールドに現在のタイムスタンプを入力する方法

SQL ローダーを使用してパイプ区切りファイルを読み込んでおり、データを入力しているテーブルに LAST_UPDATED フィールドを入力したいと考えています。私の制御ファイルは次のようになります。

LAST_UPDATED フィールドについては、SYSTIMESTAMP と CURRENT_TIMESTAMP を試しましたが、どちらも機能しません。ただし、SYSDATE は正常に動作しますが、時刻がわかりません。

私は SQL Loader を初めて使用するので、SQL Loader でできることとできないことについてほとんど知りません。ありがとう。

0 投票する
1 に答える
522 参照

oracle - SQL * Loaderの従来のロードパスを使用するのはなぜですか?

SQL * Loaderの従来のパスについての私の理解は、それがINSERTステートメントを生成し、それらをデータベースに送信するだけであるということです。プログラムでSQLステートメントを生成してデータベースに対して実行するだけでなく、これを使用することでパフォーマンス上の利点はありますか?

0 投票する
2 に答える
4586 参照

oracle - sqlldrの実行後に外部キーが無効になるのはなぜですか?

ビルドプロセス中に、sqlldrを実行して、データベースにサンプルデータを入力します。sqlldrがアクセスするすべてのテーブルで、sqlldrの実行後に外部キーが無効になります。

このAskTomの投稿によると:

sqlldrは、主キーではなく、他のテーブル(外部キーなど)に関連する制約のみを無効にします。

SQLLDRは、ITが無効にした制約のみを再度有効にし、自分で行った制約は再度有効にしません。

これは、外部キーを有効にする必要があることを意味します。

すべてのsqlldr制御ファイルは次のファイルに似ています。

カウントは、データファイルのrows行数よりも意図的に大きくなっています。これは、小さい場合、主キーが破損しているためです。

ドキュメントが示唆しているように、sqlldrが外部キーを再度有効にしないのはなぜですか?

必要に応じてインデックスを再度有効にするSQLを作成しています。なぜこれが起こっているのか知りたいのですが。

従来のロードパスを使用することも問題ありませんが、ビルドプロセスに2分かかるため、可能であればそれを避けたいと思います。

0 投票する
1 に答える
137 参照

oracle - SQL*Loaderで移植不可能なデータ型を使用する場合、何を知っておく必要がありますか?

SQL*Loaderのリファレンス マニュアルのセクションを読みましたが、ちょっと理解できませんでした。私たちのクライアントはすべて x86 を実行しているので、バイト順について心配する必要はないと思います。ただし、32 ビット OS で実行している顧客もいれば、64 ビット OS で実行している顧客もいます。これが原因で問題が発生しないようにするには、正確に何をする必要がありますか?

0 投票する
3 に答える
1240 参照

oracle - SQL * Loaderのロード中にトリガーを再度有効にするものを追跡するにはどうすればよいですか?

ログに次のようなメッセージがたくさん表示されているようです。

これは私のローカル開発マシン上にあるので、これらのテーブルに挿入しようとしているものは他にないはずです。この原因を突き止めるにはどうすればよいですか?また、トリガーが再度有効になるのを防ぐ方法はありますか(少なくとも、スクリプトのどこかでエラーが発生するかどうかを確認するため)?

0 投票する
2 に答える
7796 参照

sql - SQL ローダー データ ファイル内の囲み文字をエスケープするにはどうすればよいですか?

次のような行を含む SQL*Loader 制御ファイルがあります。

通常、引用符を使用しますが、複数行の文字列内で使用すると、emacs の python 構文の強調表示が壊れてしまうようです。問題は、次のADDRESS_LINE_2ような行があるため、100 万レコードのうち 7,000 レコードしかロードされていない列をロードしていることです。

...(その他の列),Apt #2,(その他の列)...

もちろん、これはエラーを引き起こしています。これが起こらないように囲み文字をエスケープする方法はありますか? それとも、より良い囲み文字を選択する必要がありますか?

ドキュメントに目を通しましたが、これに対する答えが見つからないようです。