問題タブ [spool]
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.
unix - パラメータが正しく設定されていてもスプールにスペースがある
スプールに問題があります。私はこれらのセットを書きました:
しかし、出力にはまだスペースがあります:
次のようなものが欲しい:
どうすれば解決できますか?
sql - SQL コマンドを使用して csv 形式のファイルをスプールするにはどうすればよいですか?
データベースからの毎日のデータに関する結果を生成する SQL クエリがあります。このクエリでcsv形式のファイルを毎日生成し、フォルダに保存したいです。これを行う方法はありますか?
注: DB に関しては、SQL Server Management Studio 2008 を使用しています。
oracle - sqlplus で csv ファイルをスプールする際のヘッダーの書式設定
sqlplus を使用して、Oracle のテーブルから csv をスプールする必要があります。必要な形式は次のとおりです。
以下は、私が書いたシェル スクリプトの関連部分です。
(私が試したがうまくいかなかったことを示すために、いくつかのコメント付きステートメントを使用しました)
私が受け取る出力は次のとおりです。
これは、ヘッダーが台無しになっていることを示しています。表示されているデータの場合と同様に、SQL ステートメントとして解釈されるはずだった文字列全体を文字通り出力しています。
私が検討しているオプション:
1) コルセップの使用
これにより、データの先頭と末尾にスペースがあり、ファイルの最初と最後の値が引用符で囲まれていないため、他の問題が発生します
この方法は、以前に説明した方法よりも胸やけが多くなるという結論に達しました。
2) ファイルを取得し、正規表現を使用してヘッダーを変更します。
3) スクリプトを使用して、ヘッダーを完全に残し、ファイルの先頭に手動でヘッダー文字列を追加する
オプション 2 はより実行可能ですが、何らかの方法でヘッダーをフォーマットするより良い方法があるかどうかを尋ねることにまだ興味があったため、通常の csv (カンマ区切り、二重引用符で囲まれた) 形式で提供されます。
ハードコーディングをできるだけ少なくすることを検討しています-エクスポートしているテーブルには約40列があり、現在約400万レコードのスクリプトを実行しています-それぞれ約10Kのバッチでそれらを分割しています. 私のアプローチとはまったく異なる提案があれば、本当に感謝しています-私は学習のプログラマーです。
oracle - Oracle SQL 並列スプーリングの自動化
ユーザーに送信されるcsvファイルにデータをスプールする重いクエリがあります。手動で並列セッションを作成し、フィルタ条件を使用してクエリを実行しているため、最後にすべてのスプール ファイルを 1 つのファイルに結合できるため、データの生成にかかる時間が短縮されます (通常、並列セッションでは約 10 時間かかります)。 2.5〜3時間)。
私の質問は、スクリプトが max(agreementid) を検出し、それを X 個のスプール呼び出しに分散して、各ファイルが最大 100000 レコードを持つ X ファイルを生成するように、これを自動化するにはどうすればよいかということです。
追加の説明: 私の質問はあまり明確ではなかったと思います。もう一度説明してみます。
- 大量のデータを含むテーブル/ビューがあります。
- このデータを CSV ファイルにスプールする必要があります。
- CSV ファイルのスプールには膨大な時間がかかります。
- 以下を実行して、並列スプールを実行します。a) 選択 .... から ... ここで、1 から 1000000 までの Agreementid。b) 1000001 から 2000000 の間の Agreementid から .... を選択します。など、複数のセッションで個別にスプールします。
- これにより、複数のファイルを生成して、それらをつなぎ合わせてユーザーと共有できます。
- テーブルから AgreementID の最小値と最大値を見つけ、スプーリング スクリプトを自動的に作成し、SQL の個別のセッションでそれらを実行して、ファイルが自動的に生成されるようにするスクリプト (DOS ベースまたは AIX ベースだと思います) が必要です。
私が自分自身を十分に明確にすることができたかどうかはわかりません。私の以前の質問に返信してくれてありがとう。
shell - OS コマンドの stderr を "!" で実行する方法 Sql*plus スプールに移動しますか?
バックグラウンド
何らかの理由で感嘆符構文を使用していくつかの UNIX コマンドを実行する必要がある長いSql*plusスクリプトがあります。
プロセスの最後にログ ファイルを作成するために、スプールに書き込みます。
問題は、OS コマンドが失敗した場合、stderrが失われ、スプール ファイルに移動しないことです。
サンプルコード
失敗した場合cp
、mylog.txt を見ただけではわかりません。
明らかに、そう!cp file1 folder1/ &> mylog.txt
することは、スプールされているログを予測できない方法で台無しにするだけです。
質問
UNIX コマンドの stderr をスプール先のファイルに書き込むにはどうすればよいですか?
アップデート
stderrをstdoutにリダイレクトするために、すべてのcpコマンドの最後に追加して、 lc.の提案 を試しましたが、次のようになりました。2>&1
更新 2
SET DEFINE OFF
値を入力しないようにしました。スプールされないのは stderr だけではなく、stdout もスプールされないことがわかりました。すべて「!」で実行されたようです。はスプール不可です。
sql - Spool コマンドを使用しようとしていますが、出力ファイルがありません
問題が何であるかを確認するためだけに、簡単なスクリプトを実行しようとしています。selectステートメント自体にエラーはありませんが、spoolコマンドが機能せず、出力ファイルが作成されないようです。
これが私がすることです。私のc:ドライブにスクリプトを保存しました。たとえば、testscript.sqlです。
testscript.sql には以下が含まれます。
次に、SQL Developerで実行しました:
スクリプト出力画面に出力が表示されますが、チェックすると、出力ファイルは作成されません。バージョン 1.1.0.23 の Oracle SQL Developer を使用しています。よくわかりませんが、Oracle SQL Developer の更新バージョンがすでに多数あるため、このバージョンで spool コマンドが機能しない可能性はありますか?
助けてくれてありがとう!
sqlplus - スプールファイルからSQLを削除
シェルで実行している SQL スクリプトがあります。問題は、スプール ファイル内の SQL を削除できないことです。
SQL ファイル:
abc.ksh
SQL スクリプトを正しく呼び出していますか?
sql - パイプ区切りの列ヘッダーを持つスプール sqlplus
現在、次の sqlplus スクリプトを使用してパイプ ファイルをスプールしています。
しかし、ファイルのヘッダーとして列名を含める方法もわかりません。それ、どうやったら出来るの?