問題タブ [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 投票する
3 に答える
661 参照

database - Oracleの質問:コミット数とbindsize / readsizeを使用して、従来のパスの負荷を改善する際の問題、direct = false

私は現在、アカデミックベンチマークであるTPC-Hを実行しており、ダイレクトパス(非常にうまく機能し、非常に高速でした)と従来のパスを使用してロードしたいいくつかの大きなテーブルがあります。

そのために、私はこのバッチスクリプトを使用しました:

問題は、bindsizeやreadsizeオプションにどのような値を指定しても、常に65534から65534の行にコミットすることです。テーブルごとの正確な行数である%%Bサイズをすでに渡しました。

直接ロードでは、ホールテーブルがロードされた後に実際に行われたように行とコミットを使用しました。

私はそのようなことをしたいのですが、従来のロードパスでは、それが速くないことはわかっていますが、それがポイントです。

正しいパラメータを指定して、次のことができるようにする方法を教えてください。1-一度にできるだけ多くのデータをロードする。
2-コミットの頻度を減らし、できればテーブルのロードの最後にコミットします。

テーブルの名前と行数は次のとおりです。

lineitem 23996604->が最大で、約があります。ディスク上の3GBの
注文6000000
パーツアップ3200000
パーツ800000
顧客600000
サプライヤー40000
国25
地域5

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

oracle - Oracle sqlload:ソースフィールドを複数の列に分割しますか?

Oracle10gのsqlloadを介してロードしたいソースファイルがあります

問題は、ソースフィールドの1つが4000文字より大きくなる可能性があることです。ソースフィールドを複数の列に分割するようにOracleに指示することは可能ですか?
たとえば、1つの列の最初の文字が4000で、2番目の列の最初の文字が4000であるとします。

ありがとう

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

perl - perlの「子プロセスがありません」エラー

sqlldrを呼び出し、フラットファイルからテーブルにデータをロードするPerlスクリプトがあります。

さて、私の問題は、sqlldrがテーブルを正常にロードしても、終了コードを-1(を使用して取得)として返すことです。$?これを使用しようとすると、と表示されます。$!No child processes

sudoコマンドを使用してこのスクリプトを実行しています

このPerlスクリプトは、ユーザーIDから直接実行すると正常に機能します。sudoユーザーを介して実行した場合にのみこのエラーが表示される理由がよくわかりません。

このエラーを理解するのを手伝ってください。

$SIG{CHLD} = 'DEFAULT';編集:私が私のコードを与えるならば、それはうまく働いています。しかし、このステップを削除すると、問題が再び発生します。このエラーについて閲覧していたときに、WWWからこのコードを取得しました。それが何をするのか分かりますか?

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

windows - SQL ローダー: 複数のデータ ファイルを処理するためのバッチ ファイル (ウィンドウ) の書き込み

特定のフォルダ内のファイル(データファイル)内の.CSVをすべて処理したい。私の問題は、毎回異なるファイル名になるので、このファイル名をSQLローダーに渡す方法です。

いつでもスケジュールできるように、これらすべてを 1 つのバッチ ファイルにまとめたいと考えています。

誰でも私を助けてくれますか?

前もって感謝します....

メフル

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

oracle - DB タイムスタンプを SQL Loader CSV インポートに追加

CSV ファイルに日付が含まれていないクライアントがいます。各行がいつ Oracle 11g データベースにロードされるかを示すタイムスタンプが必要です。CSV ファイルはベンダーから提供されているため、ファイルを変更できません。デフォルトの列値と「挿入後」トリガーを追加しようとしましたが、うまくいきませんでした。(これは時間外のプロセスであるため、パフォーマンスは問題ではありません)。

制御ファイルは次のようになります。

テーブルは次のようになります。

他のアイデアはありますか?ありがとう。

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

oracle - sqlldr を使用して txt ファイルから Oracle テーブルにデータをロードする際のエラー

私の .ctl ファイルは次のとおりです。

私はこれをWindowsコマンドプロンプトから実行しています

そして、私はこのようなエラーが発生しています。

そして、私はdbが格納する場所ORACLE_HOMEとして変数を設定しましたC:\oracle\product\10.2.0\db_2

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

sql - Load when 句の使用中に問題が発生しましたか?

~ \CSV ファイル内のいくつかの特殊文字 (例: など) で始まる (すべての行の最初の列) 外部テーブルからの行を拒否する必要があります。

そのためLOAD WHENに、節で節を使用しましたACCESS PARAMETERS。Access parameters 句で次のステートメントを使用しています。

しかし、「無効な文字」というエラーがスローされます

以下のステートメントを使用しようとすると、

それはスローします:

手順の101行目はselect * from emp;

LOAD WHEN句の使用方法- 例はありますか?

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

java - Java から sqlldr を使用する

データベースをインポートするための Java ユーティリティがあります。Oracle でのパフォーマンスのために sqlldr を使用できるようにしたいと考えています。controlとファイルを作成できましたdataが、それは The Right Thing™ のようには思えません。INFILE "-"制御ファイルに指定することでデータをストリーミングできるはずです ( q1 - どうやって? コマンドラインから、 " echo <data...>" を sqlldr にパイプできますが、プロセスの入力ストリームに文字列をストリーミングするだけの方法が必要です? これまで Java を使用したことはありません)。制御ファイル自体をストリーミングする方法がわかりません ( q2 - または明らかな何かが欠けていますか?)。名前付きパイプを使用できますが、Windows で Java からインスタンス化して使用する方法がわかりません ( q3 - それはどのように機能しますか?)。

<moan>なぜオラクルはそれほど複雑でなければならないのですか?mysqlでは簡単でした...<moan>

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

database - インポートする列のSQLLDRおよびNULLフィールド検出

SQLLDRおよびCTLファイル

インポートするCSVファイルを取得しました。

CSVファイルの特定の列に空の値がある場合にのみテーブルに挿入するようにCTLファイルで指定したいと思います。EG終了日がないユーザーのレコードのみをアップロードしたい。

いろいろなオプションを試しました

  • TERMINATIONDATE=''の場合
  • TERMINATIONDATE=""の場合
  • TERMINATIONDATE=nullの場合
  • TERMINATIONDATE='null'の場合

私が使用しているときにのみ機能します

  • TERMINATIONDATE!=''の場合、解雇されたすべての従業員を取得します。しかし、私は反対が欲しい...

やっぱり可能じゃないですか?

私のCTLファイル

(Column8は私が必要としないものなので、スキップします)

0 投票する
7 に答える
181984 参照

oracle - Oracle:CSVファイルをインポートします

私はしばらく探していましたが、答えが見つからないようですので、ここに行きます...

Oracle(9i / 10i)のテーブルにインポートしたいCSVファイルがあります。

後で、このテーブルを別の用途のルックアップとして使用する予定です。

1000を超える値を持つIN句を使用してクエリを実行することはできないため、これは実際に私が取り組んでいる回避策です。

これはSQLPLUSを使用してどのように行われますか?

御時間ありがとうございます!:)