問題タブ [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.
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
oracle - Oracle sqlload:ソースフィールドを複数の列に分割しますか?
Oracle10gのsqlloadを介してロードしたいソースファイルがあります
問題は、ソースフィールドの1つが4000文字より大きくなる可能性があることです。ソースフィールドを複数の列に分割するようにOracleに指示することは可能ですか?
たとえば、1つの列の最初の文字が4000で、2番目の列の最初の文字が4000であるとします。
ありがとう
perl - perlの「子プロセスがありません」エラー
sqlldrを呼び出し、フラットファイルからテーブルにデータをロードするPerlスクリプトがあります。
さて、私の問題は、sqlldrがテーブルを正常にロードしても、終了コードを-1(を使用して取得)として返すことです。$?
これを使用しようとすると、と表示されます。$!
No child processes
sudo
コマンドを使用してこのスクリプトを実行しています
このPerlスクリプトは、ユーザーIDから直接実行すると正常に機能します。sudoユーザーを介して実行した場合にのみこのエラーが表示される理由がよくわかりません。
このエラーを理解するのを手伝ってください。
$SIG{CHLD} = 'DEFAULT';
編集:私が私のコードを与えるならば、それはうまく働いています。しかし、このステップを削除すると、問題が再び発生します。このエラーについて閲覧していたときに、WWWからこのコードを取得しました。それが何をするのか分かりますか?
windows - SQL ローダー: 複数のデータ ファイルを処理するためのバッチ ファイル (ウィンドウ) の書き込み
特定のフォルダ内のファイル(データファイル)内の.CSVをすべて処理したい。私の問題は、毎回異なるファイル名になるので、このファイル名をSQLローダーに渡す方法です。
いつでもスケジュールできるように、これらすべてを 1 つのバッチ ファイルにまとめたいと考えています。
誰でも私を助けてくれますか?
前もって感謝します....
メフル
oracle - DB タイムスタンプを SQL Loader CSV インポートに追加
CSV ファイルに日付が含まれていないクライアントがいます。各行がいつ Oracle 11g データベースにロードされるかを示すタイムスタンプが必要です。CSV ファイルはベンダーから提供されているため、ファイルを変更できません。デフォルトの列値と「挿入後」トリガーを追加しようとしましたが、うまくいきませんでした。(これは時間外のプロセスであるため、パフォーマンスは問題ではありません)。
制御ファイルは次のようになります。
テーブルは次のようになります。
他のアイデアはありますか?ありがとう。
oracle - sqlldr を使用して txt ファイルから Oracle テーブルにデータをロードする際のエラー
私の .ctl ファイルは次のとおりです。
私はこれをWindowsコマンドプロンプトから実行しています
そして、私はこのようなエラーが発生しています。
そして、私はdbが格納する場所ORACLE_HOME
として変数を設定しましたC:\oracle\product\10.2.0\db_2
sql - Load when 句の使用中に問題が発生しましたか?
~
\
CSV ファイル内のいくつかの特殊文字 (例: など) で始まる (すべての行の最初の列) 外部テーブルからの行を拒否する必要があります。
そのためLOAD WHEN
に、節で節を使用しましたACCESS PARAMETERS
。Access parameters 句で次のステートメントを使用しています。
しかし、「無効な文字」というエラーがスローされます
以下のステートメントを使用しようとすると、
それはスローします:
手順の101行目はselect * from emp;
LOAD WHEN
句の使用方法- 例はありますか?
java - Java から sqlldr を使用する
データベースをインポートするための Java ユーティリティがあります。Oracle でのパフォーマンスのために sqlldr を使用できるようにしたいと考えています。control
とファイルを作成できましたdata
が、それは The Right Thing™ のようには思えません。INFILE "-"
制御ファイルに指定することでデータをストリーミングできるはずです ( q1 - どうやって? コマンドラインから、 " echo <data...>
" を sqlldr にパイプできますが、プロセスの入力ストリームに文字列をストリーミングするだけの方法が必要です? これまで Java を使用したことはありません)。制御ファイル自体をストリーミングする方法がわかりません ( q2 - または明らかな何かが欠けていますか?)。名前付きパイプを使用できますが、Windows で Java からインスタンス化して使用する方法がわかりません ( q3 - それはどのように機能しますか?)。
<moan>
なぜオラクルはそれほど複雑でなければならないのですか?mysqlでは簡単でした...<moan>
database - インポートする列のSQLLDRおよびNULLフィールド検出
SQLLDRおよびCTLファイル
インポートするCSVファイルを取得しました。
CSVファイルの特定の列に空の値がある場合にのみテーブルに挿入するようにCTLファイルで指定したいと思います。EG終了日がないユーザーのレコードのみをアップロードしたい。
いろいろなオプションを試しました
- TERMINATIONDATE=''の場合
- TERMINATIONDATE=""の場合
- TERMINATIONDATE=nullの場合
- TERMINATIONDATE='null'の場合
私が使用しているときにのみ機能します
- TERMINATIONDATE!=''の場合、解雇されたすべての従業員を取得します。しかし、私は反対が欲しい...
やっぱり可能じゃないですか?
私のCTLファイル
(Column8は私が必要としないものなので、スキップします)
oracle - Oracle:CSVファイルをインポートします
私はしばらく探していましたが、答えが見つからないようですので、ここに行きます...
Oracle(9i / 10i)のテーブルにインポートしたいCSVファイルがあります。
後で、このテーブルを別の用途のルックアップとして使用する予定です。
1000を超える値を持つIN句を使用してクエリを実行することはできないため、これは実際に私が取り組んでいる回避策です。
これはSQLPLUSを使用してどのように行われますか?
御時間ありがとうございます!:)