問題タブ [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.
oracle - SQLローダーのエラーが発生しました
コマンドを実行すると、コンソールに次のメッセージが表示されます。
EXCELシートからSTAGE.CSVファイルを作成しました。
STAGE.BAD FILEITSSAYSをチェックしたとき
sql - SQLLDR を使用した Oracle 日付減算
NetBackup 統計を Oracle にインポートしようとしています。私が本当に欲しいフィールドの 1 つは ACTIVE START ですが、bpdbjobs -report からは利用できません。利用可能なのは ACTIVEELAPSED であるため、次のようにインポート時に END TIME からそれを減算します。
終了時間形式: 26/09/2009 10:46:20 PM
ELAPSED TIME 形式: 028:32:35 (時間、分、秒)
SQL*Loader 制御ファイル (関連行):
私のグーグルは、間隔のフォーマットマスクがないことを私に知らせたので、私は現在困惑しています(Oracle SQLは私の通常の仕事ではありません!)
ジョナサン
oracle - SQL ローダーを使用して LOB を Oracle にインポートできませんでした
ID と nvarchar(max) として格納された非常に長い XML 文字列で構成されるテーブルを SQL Server から Oracle にエクスポートしようとしています。
SQL Table -- CREATE TABLE MyStuff (MyID int, MyText nvarchar(max))
Oracle Table -- CREATE TABLE MyStuffImported (MyID int, MyText NCLOB)
SQL Server bcp ユーティリティを使用してテキスト ファイル (MyStuff.bcp) にエクスポートし、SQL Loader 経由で Oracle にインポートしています。しかし、SQL ローダーは次のメッセージで失敗します。「データ ファイル (MyStuff.bcp) の物理レコードが最大値 (1048576) を超えています」と 0 レコードがインポートされます。
正確な問題が何であるかはわかりません。最も明らかな可能性は、MyText が最大長の 1048576 よりも長いことです。実際、一部のレコードは長くなっていますが、すべてではありません。少なくとも一部のレコードがインポートされなかったのはなぜですか? そして、この制限を回避する方法はありますか?
もう 1 つの可能性は、いくつかのディスカッション ボードで読んだことですが、MyText に Oracle が処理できない改行があるというものです。(1) SQL からのエクスポート中に \r と \n を削除し、(2) SQL ローダー制御ファイルのレコード区切り文字で \n を使用することで、この問題を回避していることを願っていました (完全なファイルについては以下を参照)。 . 私は何か間違ったことをしていますか、それともすべてのケースを処理していませんか?
以下は、私の SQL ローダー制御ファイルのテキストです。区切り文字として \ を使用していることに注意してください。これは奇妙に思えますが、MyText フィールドで使用されていない唯一の文字です。\\
したがって、エスケープしているので、\ の意味 がわかります。
助言がありますか?おそらく、SQL Loader を介して NCLOB にインポートするより良い方法はありますか?
sql - SQL*ローダーの問題
エラーSQL*Loader -606 が表示されます。これは、次のことを意味します。
SQL*Loader制御ファイルのINTO TABLE句で指定されたシノニムは、データベース・リンクを介してリモート・オブジェクトを指定しています。INTO TABLE句に指定できるのは、既存のローカル表のシノニムだけです。
SQL*Loader を使用してリモート テーブルに挿入する方法はありますか?
python - Pythonで1900年より前の日付にstrftimeのような関数を使用する方法はありますか?
私はこれに気づきませんでしたが、明らかに Python のstrftime
関数は 1900 年より前の日付をサポートしていません:
これを行うために自分で何かをハックできると確信していますが、このstrftime
関数には理由があると思います (また、1900 年より前の日付をサポートできない理由もあります)。1900 年より前の日付をサポートできるようにする必要str
があります。つまり、マイクロ秒がある場合とない場合、またはタイムゾーンがある場合とない場合があります。これに対する解決策はありますか?
違いがある場合は、データをテキスト ファイルに書き込んで、Oracle SQL*Loader を使用してデータベースにロードできるように、これを行っています。
私は基本的にAlex Martelliの答えをやることになりました。より完全な実装を次に示します。
唯一の違いは、str(d)
と同等であることd.isoformat(' ')
です。
sql - SQL*Loader制御ファイル内からデータファイル名にアクセスする
SQL * Loader制御ファイル内から入力データファイル名にアクセスして、入力ファイルのデータと一緒にテーブルに挿入するにはどうすればよいですか?
たとえば、次の制御ファイルがあるとします。
私は次のようなことをしたい:
この制御ファイルでSQL*Loaderを呼び出すシェルスクリプトを編集するためのアクセス権も権限もないと仮定します。
oracle - External Tables vs SQLLoader
So, I often have to load data into holding tables to run some data validation checks and then return the results. Normally, I create the holding table, then a sqlldr control file and load the data into the table, then I run my queries. Is there any reason I should be using external tables for thing instead? In what way will they make my life easier?
oracle - SQLLDRおよびskip_unusable_indexes
800,000行をロードする必要がある一意のインデックスを持つテーブルがあります。
インデックスを変更して使用できなくしました。'options(rows = 4000、bindsize = 512000、skip_unusable_indexes = TRUE)'を制御ファイルに追加しました。
まだフォームのエラーが発生しています:
提案を歓迎します
oracle - NULLIF を使用した sqlldr エスケープ予約名
[SEQUENCE] というフィールドと [REFERENCE] というフィールドを持つテーブルがあります。
SQLLDR のフィールドを次のように定義できます。
SEQUENCE が SQLLDR 予約語であると不平を言っています。
私が試してみました
どれも機能していないようです
ダイレクト パス ロードが妨げられるため、SQL を呼び出さないことをお勧めします。
oracle - Oraclesqlldrタイムスタンプ形式の頭痛の種
sqlldr
特にタイムスタンプであるフィールドを使用して、csvデータファイルをテーブルにインポートするのに苦労しています。
私のcsvファイルのデータは次の形式です:
私は自分の制御ファイルであらゆる種類の組み合わせを試し、輪になって回っています。オンラインで何も見つかりません。すべての日付/タイムスタンプ形式の文字列について詳しく説明しているOracleリファレンスページもありません。
この参照ページがどこにあるか、またはこのタイムスタンプ形式の制御ファイルで使用する必要がある形式文字列を知っている人はいますか。
参考までに、これは私が最近試したものです。