• ベストアンサー

オラクルDBからのデータ取得について

こんばんわ。 オラクル(sqlplus)についての質問2点です。 (1)シェルからオラクルDBへアクセスし、データを取得したいのですが、  select時に、結果のヘッダーをつけずに結果(データ)のみをファイル出力することは可能でしょうか? (DB2で言うところの「-x」オプションのような・・・) (2)エラー時にSQLコードを取得したいのですが、SQLコードをファイル出力することは可能でしょうか? オラクルは初心者で、行き詰まってしまいました・・・ どうかよろしくお願いします。

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

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

SET HEAD OFF でカラム名を出力しないようにできます。 SQLコードを出すには、 WHENEVER SQLERROR EXIT SQL.SQLCODE とします。 詳しくSQL*Plusのヘルプをどうぞ。

参考URL:
http://www.orafaq.com/faqplus.htm
louisvuitton
質問者

お礼

回答、ありがとうございます!! URLも参考にさせていただきます。

関連するQ&A

  • オラクルからのデータ取得について

    こんにちわ。 下にも質問したのですが・・・ シェルからオラクルDBにアクセスし、データを取得する処理を行いたいのですが、 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の結果を取得したい

    シェルスクリプトでSQLPLUSから、SQL文を実行させる事はできたのですが、そのSQLがSELECT文の時、その抽出した結果をシェルスクリプト上 、知りたいとき、どのようにすればわかりません。 SELECT した結果は必ず0個または1個です。 どなたかご教授ください。 sqlplus -S user/pass @${SQL_FILE} << EOF >log.txt EOF SQL_FILEの中身 select seq from A_table where ID = 1

  • oracleの文字コードとlinuxサーバの文字コードが異なる場合、サ

    oracleの文字コードとlinuxサーバの文字コードが異なる場合、サーバからシェルまたはsqlplusでDBに接続し、spoolコマンドで指定したファイルに、SQLの実行結果や、PLSQLのDNMS_OUTPUTで出力した内容を保存すると文字化けしてしまいます。 これを回避するにはどうすればよいのか、ご教授下さい。 具体的な環境は、下記の通りです。 oracles:SJIS(NLS-LANGはSJIS系にしています) サーバUTF8 出来ればUTF8でファイルに出力したいのですが、無理なら最低でもSJISで出力させたいです。現在は、ftpでバイナリーダウンロードさせて秀丸などのエディターで見ても、どちらとも認識できない文字コードになっているようです。 なお、お客様側のサーバなので、DBやOSの文字コードを変えることはできません。

  • 【エクセルVBA】DBのデータをCSVに

    VBA初級者です。 oracleDBのデータをCSVへ出力するマクロをVBAで作成中ですが、実装方法が分からず困っています。 ・DB接続はoo4o ・エクセルは2010 ・SQLで取得したデータを1レコードづつCSVに書き出したい ・カラム名をヘッダーとして書き出したい 以下のような実現方法でできるか…?と考えたものの、 肝心のマクロ(VBA)でのDBデータの取得⇒CSVへの書き込み方法がいくら調べてもわかりません。 CSVからDBへのインポートはたくさんあったのですが…。 そもそも取得したレコードを配列で保持して書き出す、という考え方が合っているのか?ヘッダー(カラム名)はどのように書き出せばいいか? など疑問が尽きません。何卒お力添え頂ければ幸いです。 --ボタンクリック時のアクション-- (1)変数定義 (2)DB接続情報確認 (3)DB接続 'DB接続 Set oraSession = CreateObject("OracleInProcServer.XOraSession") Set oraDatabase = oraSession.OpenDatabase(dbSid, dbUser & "/" & dbPass, ORADB_DEFAULT) (4)書き込み用のCSVファイルを作る (5)SQLを実行し返ってきた結果をsplit関数で配列としてwriteListにAddする (5)作成したCSVファイル内にwriteListのデータをPrint #で書き出す (6)完了メッセージを表示 MsgBox "完了しました " (7)DBの切断 'DBクローズ Set oraDatabase = Nothing Set oraSession = Nothing --SQLを実行するメソッド-- (8)SQLを記述、SELECT結果を(5)に返す 恐れ入りますがよろしくお願いいたします。

  • シェル(Unix/Linux)を使用してDBアクセス

    上題どおりなのですが シェルスクリプトを使用してORACLEなどDBへのアクセス・データ操作は 可能なのでしょうか?。 仮にできないとなると、業務系開発ではORACLEとシェルはどのように 組みあわせて使うのでしょうか?。。想像としては ・Oracleのコマンドでデータをテキストに出力しシェルで読みこみ などが考えられますが・・。他にもDB関連で「こんな時にも使う」など ノウハウがあれば是非教えて頂ければと思います。 よろしくお願いします。

  • DBサーバーのOracleからのデータ取得について

    WEBサーバー(Linux)とDBサーバー(WindowsServer2003)が分かれている環境で、WEBサーバーのPHPからoci8で、DBサーバーのOracleからデータ取得をしており、データ取得量?が多いとエラーとなってしまします。 SQL自体はOracle環境で実行して正常にデータ取得することは確認しているのですが、10万行程度のレコード数でもレスポンスの時点?でエラーとなります。 (レスポンスの情報が無いので、エラー内容が分からず、データ件数を絞ると抽出が出来ます) 解決方法をご存じの方や、PHPもしくはLinuxの設定で取得データサイズの設定方法について分かる方がおりましたら、ご教授ください。 宜しくお願い致します。

  • ORACLEのDBへODBC経由でデータアクセスしています。

    ORACLEのDBへODBC経由でデータアクセスしています。 実行環境はWindows XP,開発言語はCOBOLです。 コンパイルは問題ないのですが、実行しますと、 動的SQLの使い方が間違っていますというようなメッセージが 出力されて異常終了します。(ちなみにカーソルオープンのところで終了) 下記のような動的SQLのコーディングですが、どこが問題なのでしょうか? 宜しくお願いします。 01 SQL-CSR0-DB21. 03 FILLER PIC X(35) VALUE 'SELECT M.*,ROWIDTOCHAR(M.ROWID) '. 03 FILLER PIC X(35) VALUE ' FROM DB21 M '. 03 FILLER PIC X(35) VALUE ' WHERE M.BCODE = ?   '. 78 SQL-CSR0-LEN VALUE 105.           (中略)   INITIALIZE DYNSTMT. MOVE SQL-CSR0-DB21 TO DYNSTMT-ARR. MOVE SQL-CSR0-LEN TO DYNSTMT-LEN. EXEC SQL PREPARE STMT1 FROM :DYNSTMT END-EXEC. EXEC SQL DECLARE CSR0_TN_DB21 CURSOR FOR STMT1 END-EXEC. EXEC SQL OPEN CSR0_TN_DB21 USING :BCODE_HST END-EXEC.

  • オラクル SQLサーバーにて ファイルをDB管理したい

    オラクルもしくはSQLサーバーにて ファイルとか画像もデータベースで管理したいのですが オラクルやSQLさーばーはファイルとかDBは 管理できるのでしょうか? 管理できる場合 ファイルをDBに保存するのでしょうか? もしくは ファイルへのリンク アドレスを 管理するのでしょうか? 詳しい方教えてください

  • Oracleの使い方がわかりません

    Oracleを自分のPCのCドライブにインストールして、SQLPlusでDBを作成したのですが、ふと疑問に思ったのですが、作成したDBはどこのファイルに保存されるのですか? すいません、仕組みがよくわからなくて・・・。