• ベストアンサー

sqlplusで表示が変なので、出力を整形したい。

いつもお世話になっています。 サーバにアクセスしてsqlplusで、 データを調べたいのですが、 出力形式が見づらくて困っています。 よくわからいのですが、 --------------------------- カラム名1 --------------------------- カラム名2 --------------------------- カラム名3 --------------------------- 1の値 2の値 3の値 --------------------------- カラム名1 --------------------------- カラム名2 --------------------------- カラム名3 --------------------------- 上記のように意味不明な形式で出てきます。 例えばこんな風に select カラム1,カラム2,カラム3 from hoge; カラム1 1の値 --------------------------- カラム2 2の値 --------------------------- カラム3 3の値 等のように分かりやすく表示できないでしょうか? ちなみにOracle9iR2を使用しています。 sqlに関するツールは使用できないルールでして、あくまでsqlplusのコマンド上でみやすくしなければなりません。 分かりづらくですいませんが、皆さま、ご教授お願いします。

  • Oracle
  • 回答数2
  • ありがとう数22

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

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

SQLPLUSを起動して、 SQL>set linesize 列数 でどうだ。 SQL>show linesize で確認ができる。

yukio200263
質問者

お礼

ありがとうございます、見やすくなりました。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

一行(初期値80バイト)に収まらないので、折り返しされています。 一行の幅を広げると解消できるんですが、ご要望の形式にはなりません。 1.#1さんの方法で1行を1000バイトにする   set linesize 1000 2.spool に吐き出す。 spool c:\temp\test.txt --適宜変更してください set colsep , で区切り文字をカンマにし、 set pagesize 0 で改ページとし、 set heading off で見出し無し set trimspool on で右側の余白を解除し、 CSVファイル化した方が良いかも? (もう少し編集の必要あり) お試しください。

yukio200263
質問者

補足

詳細なお返事ありがとうございます、試してみます

関連するQ&A

  • 【ORACLE】SQLPLUS【HADING変数】

    LinuxOS上(CentOS 5.6)上でOracleの11gR1を使っています。 データベースにアクセスする際にSQLPLUSを使っているのですが、テーブル表示の際にコラムのタイトルが表示されなくなってしまいます。 例: 11:07:07 ORACLE > SHOW HEADING heading ON 11:07:16 ORACLE > SELECT * FROM EXAMPLE; 1||ONE                       ← コラムのタイトルが表示されない 2||TWO 3||THREE ※ORCLE_HOME/sqlplus/admin/login.sqlにてそれぞれTIMEをON, PROMPTを” ORACLE > ”、セパレーターを”||”に変更してあります。 またsqlplus -R 3 (ファイルシステムの変更を禁止するレベル)で入り、パラメーター関連を読み込まない状態では、 SQL> select * from example; COLUMN_01 COLUMN_02 ---------- ---------- 1 ONE 2 TWO 3 THREE SQL> show heading heading ON とちゃんと表示されます。 インターネットをいろいろ調べていてもHEADINGのパラメーターをONにするぐらいしか見つからず、途方にくれております。 実務に致命的な支障はないのですが、「このテーブルなんだったっけな」と確認したい時にわざわざ「DESC」コマンドを打たなくてはなりません。 是非タイトルを表示できるようにできないでしょうか。 おわかりになる方、同じことを経験された方、どうぞよろしくお願い致します。

  • SQLPLUSでセレクト結果の表示方法

    お世話になります。 SQLPLUSでselect * from AAA という風にセレクト結果を出力する場合 AAAテーブルのカラム数が多い場合改行されて出てきますが、 これを改行せずに1レコード1行で表示させられないでしょうか? 何かSQLPLUSのコマンド等をご存知の方いらっしゃったらご教授お願いいたします。

  • カラム名について。

    忙しいところ申し訳ありません。 ● 使ってるソフト ORACLE SQLplus <状態> データベースについての質問なんですが、 1.カラム名を日本語してあります。 2.select文コマンドで入力したとき、ORACLE SQLplus でカラム名が表示されません。 データは取れているのですが、日本語にしているとカラム名が表示されないということが、あるのでしょうか?

  • RSHコマンドでのsqlplusの起動

    RSHコマンドを使用し、リモートサーバのsqlplusを操作したいと考えています。 検証環境として、ローカルサーバ(RedHat Linux7.2)、リモートサーバ(RedHat Linux6.2)で検証を行い、うまくいったので本番環境としてローカルサーバ(RedHat Linux7.2)、リモートサーバ(Solaris8)で検証を行ったところうまく動いてくれません。 rsh -l oracle リモートサーバ名 sqlplus 上記のコマンドを打つとsqlplus not foundと帰ってきます。検証環境ではちゃんとOracleのプロンプトが帰って来てたのですが。一応自分ではLinuxとSolarisのRSHの違いかなと思いつつ・・・。かといってOracleのほうの設定も間違っているのかと思い質問させて頂いています。 sqlplus not foundとでてくるのでフルパスで書けば大丈夫なのかと思い rsh -l oracle リモートサーバ名 $ORACLE_HOME/bin/sqlplus と打つと以下のエラーが帰ってきます。 message file sql<lang>.msb not found Error6 initializing SQL*Plus どなたか、同じような経験、解決策などご存知の方がいらっしゃいましたらお知恵をお借りできればと思います。 よろしくお願いします。

  • SQLPlusでUnicode

    Windows XP上でOracle 9 リリース2によるデータベースを構築しようとしています。Unicodeで書かれた.sqlファイルを使って次のことをしたいのですが、うまくいかずに悩んでいます。アドバイスいただけませんでしょうか。 INSERT, DELETE, UPDATEなどのコマンドが記述された SQLスクリプトをSQLPlusにてデータベースに投入する。 このデータベースは次のようにNLS変数を設定しました。 NLS_CHARACTERSET = AL32UTF8 NLS_NCHAR_CHARACTERSET = UTF8 SQLPlusは.sqlファイルを読み取れずSP2-0042というエラーを出してきます。いくつかのエンコード(UTF8, Unicode, ANSI)で.sqlファイルを保存することを試したのですが、どの場合もSQLPlusではじかれました。オラクルをインストールするときに、いつかのタイミングで日本語と英語で動作するようにインストールしたのですが、それがSQLPlusでUnicodeを読み取れない原因なのでしょうか。 よろしくおねがいします。

  • SQLplusの設定について

    Oracle 8i 1.SQLplusにて、下記方法にて  常時ラインサイズを変更しているのですが  SQLplus起動時に自動設定することは  可能でしょうか?  SQLplus -[オプション]-[環境]           -[オプション設定]-[linesize]           -[値]:1000 2.SQLplusにて、下記コマンドを発行し、  ノートパッド(エディタ)を使用し  SQL文の編集を行っています   ノートパッド(エディタ)を他のエディタに  設定変更したいのですが、  どのようにすればいいのでしょうか?

  • SQL実行結果の出力を見やすくしたい

    Oracle 10gを使用して勉強をしています。 SQL実行結果の出力が見にくくて困っています。 以下、(1)は自分が実行したSQL文ですが、(2)のように見やすく出力したいです。 どのようにすればよいのでしょうか? また参考となるWEB URLがある場合、頂けたら嬉です。 (1)自分が実行したSQL文 SQL> select 2 sid,serial#,username,osuser,program,machine,terminal 3 from v$session 4 where type = 'USER'; SID SERIAL# USERNAME ---------- ---------- ------------------------------ OSUSER PROGRAM ------------------------------ ------------------------------------------------ MACHINE ---------------------------------------------------------------- TERMINAL ------------------------------ 543 39 SYS oracleuser sqlplus@HOGE-net (TNS V1-V3) HOGE-net pts/1 SID SERIAL# USERNAME ---------- ---------- ------------------------------ OSUSER PROGRAM ------------------------------ ------------------------------------------------ MACHINE ---------------------------------------------------------------- TERMINAL ------------------------------ 544 5 SYS oracleuser sqlplus@HOGE-net (TNS V1-V3) HOGE-net pts/0 (2)こんな感じで出力させたいです。 select sid,serial#,username,osuser,program,machine,terminal from v$session where type = 'USER'; SID SERIAL# USERNAME OSUSER PROGRAM  MACHINE   TERMINAL ---- ------- --------- ------ ---------- ---------  -------- 139     2      TEST Owner sqlplus.exe   HOGE_XP HOGE_XP 144     20    SYSTEM      ORACLE.EXE HOGE_XP  HOGE_XP

  • DOSから起動した際のSQLPLUSウィンドウ表示

    OS:WINDOWS NT4.0 ORACLE Personal 7.3.4 VBのアプリケーションを作成しています。 行う内容は  (1)VBのフォームでボタン押下  (2)DOS(バッチファイル)起動  (3)バッチファイルよりORACLE SQLPLUS起動   (USERのDROP&CREATE実行)  (4)バッチファイルよりORACLE IMPORT実行   (指定ファイルのIMPORT) です。 処理的には問題ないのですが、(3)の実行時にSQL*PLUSのウィンドウが見えてしまいます。 (2)の実行時に「START /MIN ~(SQLPLUSコマンド)」を行っている為か、ORACLE9ⅰですとSQLPLUSの表示はされないのですが、今回対象の7.3.4だと見えてしまいます。 見栄えが悪いところを突っ込まれているので、最小化でも構わないのですが、SQLPLUSの起動オプション等には特に解決できるものは探すことができませんでした。  なにか有効な方法をご教授いただきたいです。 みなさま宜しくお願いします。

  • シェルスクリプトでオラクルのエラーメッセージを取得するには

    シェルスクリプト上でsqlplusを起動し、さらにSQLの実行結果(エラーメッセージ)を取得するにはどのようにシェルをどのように記述すればよいでしょうか? ---------------------------------------- sqlplus scott/tiger@hoge SQL>select * from dep; * 1行でエラーが発生しました。 ORA-00942: 表またはビューが存在しません。 ---------------------------------------- 上記のようなコマンド実行とエラーメッセージの取得を行いたいのですが、シェルについては超初心者のためよく分かりません。 実行環境は以下の通りですが、ご存知の方教えて頂けないでしょうか。よろしくお願いします。 OS:Red Hat Linux 8.0 DB:Oracle8.1.7

  • SQL*PLUSで列幅変更したい。

    こんにちわ。 いまORACLE9iを使用している者です。 SQL*PLUSで, つぎのようなSELECT文を発行しました。 「SELECT HOGEKBN AS ほげほげ区分 FROM HOGE_TABLE」 「HOGEKBN」は1桁のデータなので, 実行結果に列名である"ほげほげ区分"が表示されません。 これを表示したいと思い, 「 SELECT HOGEKBN AS ほげほげ区分 FROM HOGE_TABLE COLUMN ほげほげ区分 FORMAT A20 」 としたところ, COLUMN~の行で, "ORA-00933: SQLコマンドが正しく終了されていません。" というエラーメッセージが出てしまいます。 SQL*PLUSで列幅指定するにはどうすれば良いでしょうか? 教えてください。よろしくお願いします。