• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSV出力スクリプトについて)

CSV出力スクリプトについて

このQ&Aのポイント
  • CSV出力スクリプトを使用して、1つのテーブルをCSV形式で出力する方法について質問があります。
  • 問題は13,4件に1行改行されてしまうことです。
  • 改行を省く方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちわ。 > 問題は13,4件に1行改行されてしまいます。 > この改行を省くことができるでしょうか? set pages 0 としてからSelect 文を実行して下さい。

toshi_200578
質問者

お礼

ありがとうございます。 おかげさまで助かりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CSV出力スクリプトについて

    CSV出力のスクリプトを作成しました。 単純に1つのテーブルをそのままCSVで出力するだけです。 件数は60万件程度です。 問題はたとえばKAIIN_NOの項目が桁数20桁の場合に出力されるCSVが20桁を超えて50桁くらいで出力されたりします。項目桁数と同じではなくてもよいのですが、空白を出力したくないです。 なにかよい方法はありますでしょうか? ※Select文でTrimをかけても効果はありませんでした。 --CSV出力 -- set line 100 -- set echo off コマンド表示を抑止する -- set termout off 画面出力を抑止する -- set heading off 列タイトルの表示を抑止する -- set feedback off 結果メッセージの表示を抑止する -- set colsep ',' 列と列の区切りをカンマ(,)にする set line 100 set echo off set termout off set heading off set feedback off set colsep ',' /* spoolコマンドでファイル出力を開始する */ spool C:\tmp\sample.csv /* 問い合わせ結果がファイルtest.csvに出力される */ SELECT KAIIN_NO, STS_NO, SYOHIN_NO FROM SAMPLE; /* spool offでファイル出力を終了する */ spool off

  • DBからタブ区切りのCSVデータを抽出する

    DBからCSVにしてデータを取り出そうと、ネットで検索して みようみまねでやってみました。(下記の場合カンマ区切りですが) タブ区切りで整列したデータを抽出したいのですが、特に、 (4)のように隣合う項目の間がかなり離れていて見えにくい状態で CSVファイルが作成されてしまいます。 (1)のように整列した形で、タブ区切りのCSVデータを抽出するには、 どのようにしたら宜しいのでしょうか? (2)、(3)は、試してみた実行ファイルです。 環境は、oracle10g windowsXPです。 (1)目的の結果の表示------------------------------- 653-5689 ZM05 田中太郎 YOKOHAMAS 4 4  9 097005・・・・・ 以下試してみたbatファイルとsqlで抽出 (2)batファイル---------------------------------- sqlplus ABCD/ABCD@oracle.host1.ser @abc.sql (3)sqlファイル----------------------------------- set echo off set heading off set termout off set pause off set pagesize 0 set trimspool on set feedback off set colsep "," set term off spool hoge.txt select * from T_JUTYU; spool off exit (4)結果--------------------------------- 653-5689 ,ZM05 田中太郎 ,YOKOHAMASI 4, 4, , ,9 ,097005 , 1 ,18 , , , , , 0 ,asahi asahi ,08-12-23,08-12-23, ------------------------------------------------まで結果

  • sqlplusでヘッダーが付かない

    サーバー:windows 2003server oracle10g クライアント:windows xp oracle10g 以下のsqlファイルをbatで起動し、テキストファイルを出力しています。 しかしながら、setのところにヘーダーを出力するよう宣言しているのに もかかわらず、出力されません。 どなたかおわかりになる方、いらっしゃいませんでしょうか? set echo off set heading on set underline off set termout off set pause off set pagesize 0 set trimspool on set feedback off set termout off set linesize 1000 set lines 30000 spool hoge.txt select aaa||CHR(9)|| bbb||CHR(9)|| ccc||CHR(9)|| ddd from M_JITU; spool off EXIT

  • [SQL Server] コマンドプロンプトからのCSV形式出力

    SQL ServerのテーブルデータをSELECTしてダブルコーテ区切りのCSVに出力したいと考えております。 ・batファイルからの起動を希望。 ・出力CSVファイル名はbatファイルより引数で指定したい。 ・出力後、DELETEも行いたい。 OracleだとSQL*Plus環境で下記のようにテキストレベルで簡単にできます。 SQL Serverでも同様のことができないでしょうか? 要は下記をSQL Server版でやりたいということです。 参考:Oracleだと・・・ 同一dirに、abc.batとabc.sqlを用意しabc.batを実行すると20070601.csvが生成される。 1.abc.bat rem ----abc.bat-ここから---- sqlplus usr/pwd@host @abc.sql 20070601.csv rem ----abc.bat-ここまで---- 2.abc.sql ----ファイル名=abc.sql-ここから--- set echo off set heading off SET VERIFY OFF set FEEDBACK OFF set TRIMSPOOL on set termout off set pagesize 0 set linesize 32767 spool &1 select '"'|| カラム1 ||'",'|| '"'|| カラム2 ||'",'|| '"'|| カラム3 ||'"' from テーブル1; spool off delete from テーブル1; exit ----ファイル名=abc.sql-ここまで--- 20070601.csv結果 -ファイル名=20070601.csv-ここから--- "20060726","scott","356160" "20060727","tiger","463391" "20060728","manager","1930" -ファイル名=20070601.csv-ここまで--- DBサーバ環境 OS:Win2003SvrR2 SQL Serverバージョン:わかりません。(2003にのってるので最近のだと思われます) Oracle経験者でSQLServer初心者です。マニュアルもなく、Web検索しても「SQL」「Server」ってなかなかうまくひっかからない!! ので質問あげさせていただきます。

  • OracleでCLOB型をファイル出力したい

    Oracle10gで、CLOB型を含むテーブルを全件ファイル出力しているのですが、CLOB型の項目は正常に出力されず、項目の内容が80byte位で切れてしまいます。 項目の内容が切れずにファイルに出力できる方法が知りたいです。 宜しくお願い致します。 ファイル出力の内容は以下の通りです。 ########################################################## set pages 0 set heading off set colsep '<ec>' set lines 3000 set feed off set trimspool on set define off set num 20 spool テーブル名.dat select /* FULL(テーブル名) */ 項目A,項目B,・・・・ from テーブル名; spool off ########################################################## ※項目は、全部で15項目あり、レコード長は135です。

  • sqlplusのspoolで空白行出現

    OS:Windows Server 2003 DB:Oracle10g(10.2.0) sqlplusでselect結果をcsvファイルにspoolする際に空白行が出力されて困っています。 以下のsqlを実行した場合、 ----- SET ECHO OFF SET FEEDBACK OFF SET HEADING OFF SET PAGESIZE 0 SET LINESIZE 2000 SET TERMOUT OFF SET TRIMSPOOL ON spool test.csv select '"'||col1||'","'||col2||'","'||col3||'"' from table; spool off ----- 改行を含むカラムを含む行の後に空白行が出力されます。 (2レコード目のcol3は"g"と"h"の間に改行コードがあるデータが格納されているが、何故か2レコード目と3レコード目の間に空白行が出力される) ----- "abc","def","ghi" "abc","def","g hi" "abc","def","ghi" ----- これはsqlplusの仕様でしょうか。 2行目と3行目の間の空白行を削除してspoolする方法はありますでしょうか。 なお、改行を含むカラムの改行を改行以外の文字に置換して出力した場合は、以下のように空白行が出現しません。 ----- "abc","def","ghi" "abc","def","gカイギョウhi" "abc","def","ghi" -----

  • crontabで登録したシェルが動かなくなってしまいました

    シェル初心者です。 宜しくお願い致します。 bashコマンドで起動させると上手く動くのですが、 crontabコマンドで登録すると、全く動いてくれないのです。 ネットで色々調べましたが、原因がさっぱりわかりません。 何卒ご教示お願い致します。 【シェルの内容】 ●オラクルに接続し、hoge.sqlにかかれているsql文を実行するシェルです。 cd /h/ho/hog/hoge/ sqlplus hoge/hoge2@hogehoge @/h/ho/hog/hoge/hoge.sql ちなみにhoge.sqlは、以下のような内容です。 (⇒test.sqlの内容をcsvファイルに出力する) set echo off set heading off set pause off set pagesize 0 set linesize 32767 set feedback off set trimspool on set termout off column log_date new_value log_date_text noprint select to_char(sysdate,'yyyymmddhh24miss') log_date from dual; spool TEST_&log_date_text..csv @/h/ho/hog/hoge/test.sql ※test.sqlはselect文です。 spool off exit 納期が近づいているため、かなり焦っています。 宜しくお願い致します。 ●その他 サーバ:Sun OS 5.9 oracle:9.2.0.1.0                          以上

  • 項目内の改行がレコードの終わりと判定されてしまう

    SQL*PLUSでORACLEデータを単純にテキストファイルに書き出したいのですが、項目内に「改行」があるとレコードが複数行に分かれていまい、上手くいきません。 項目内の「改行」のみ(レコード終端の本来の「改行」は残す)を削除して前詰めする(または空白に置き換える)方法をご存じの方ご教示いただけないでしょうか。 例) SET COLSEP ',' SPOOL D:\出力ファイル.txt SELECT      項目1 || 項目2 || 項目3 FROM テストテーブル ; SPOOL OFF;

  • batでsqlplusによる前月データを取得

    sqlplusにてbatファイルを起動するだけで前月のデータを取得しようとしていますが、 ネットで検索等してもなかなかうまく行きません。 以下のようにbatファイルを起動すると、常に前月のT_URIのデータを取得させたいのですが、 どのようにすれば宜しいでしょうか?ご教示頂けると助かります。(期間の日付をじかに入力すれば、取得できたのですが、同じように取得したいテーブルが複数あるので) 月初日は常に1日、月末日は常に31日にして、前月をbatファイルかsqlファイル上で計算させる方法はないのでしょうか? (会社の業務でoracleのデータベースから抜き出そうとしています。) SQLPLUS ABCD/ABCD@ORACLE.XYZ.WW @0031_ymd.sql PAUSE ↓0031_ymd.sql set heading on set echo off set underline off set termout off set pause off set pagesize 0 set trimspool on set feedback off set termout off set linesize 1000 set lines 30000 spool D:\hoge.csv SELECT * FROM T_URI S WHERE AND S.KJN_YMD >= yyyymmdd AND S.KJN_YMD <= yyyymmdd

  • タスク実行でコピーできない

    手動で以下の内容のバッチを起動すると問題なく指定の場所にコピーできますが タスクに登録して実行するとファイルは、作成されていますが指定の場所にコピー出来ません。 ◆バッチ echo on C:\oracle\product\10.2.0\client_1\BIN\sqlplus ****/*****@*** @C:\temp\Daily\TBL_USR.sql %1 %2 set CHECKLOG_DIR=\\******IPアドレス\test copy TBL_USR.csv %CHECKLOG_DIR%\TBL_USR.csv ◆SQL文 set UNDERLINE OFF SET COLSEP ',' set linesize 1000 set pagesize 25000 SET FEEDBACK OFF spool C:\temp\Daily\TBL_USR.csv SELECT a, b, c, d FROM TBL_USR WHERE DELKB <>1; spool off; exit; exit; ◆タスク結果 (0x1) ◆環境 windows Sever 2008 R2 Enterprise

このQ&Aのポイント
  • オイルレスコンプレッサーを直す方法について解説します。
  • シリンダ内部のオイルレスコンプレッサーの圧力が上がらない場合、直す方法をご紹介します。
  • 安いミニエアコンプレッサーの圧力が上がらない場合、修理ができるかどうか考えてみましょう。
回答を見る