• ベストアンサー

【バッチ】shからOracleに接続

「シェル(sh)からOracleに接続できない場合にエラーログを出す」処理 をシェルスクリプトで書きたいのですが、どう書けばいいかご存知の方 はおられますか? OS:solaris シェル:sh DB:Oracle10g

noname#30874
noname#30874

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

  • ベストアンサー
  • hogejo
  • ベストアンサー率42% (11/26)
回答No.1

Oracleに接続が失敗したかを判定する方法が知りたいのでしょうか? OracleをUnix上で使ったことはありませんが、、、こんな感じ? 接続コマンド if [ $? == 1 ] then echo error fi エラーメッセージを標準エラーに出したいってことなら・・・ echo hoge > /dev/null echo error >&2 echo std >&1

noname#30874
質問者

お礼

御回答、ありがとうございます。 >Oracleに接続が失敗したかを判定する方法が知りたいのでしょうか? そうです。失敗時にログファイルにエラーメッセージを出力したいのです…。 今回、シェルを初めて使うので、本で調べたり、ネットで調べているのですが、よくわからず質問させていただきました。 ご回答された内容を参考にさせて頂きます。ありがとうございました。

関連するQ&A

  • AccessからOracleへのODBC接続

    現在、Oracleで作成したデータベースに接続して 検索するソフトを、Accessで作成してあります。 Oracleに接続をするのに、 ODBCを使用しているのですが、 最初依頼があったときは「Oracle8」のときだったので、 「Oracle8」のみ接続可能なプログラムが組んであり、 「Oracle10g」の入っているPCでは接続できないという問題が発生しました。 そこで、「Oracle8」と「Oracle10g」とも接続出来るように プログラムを書き換えたのですが、 現在は「Oracle11g」が最新になっていると思うので、 ゆくゆくはそれに対応しなければならないなあ、と思っています。 そうすると、Oracleがバージョンアップするたびに、 ソフトのプログラムを書き換えなくてはならなくなり、 効率的ではないな…と思いまして… Oracleのバージョンが違っていても、 自分のPCのOracleのバージョンを自動認識して、 AccessからOracleへ接続する方法はあるのでしょうか? ちなみに現在は、TableDefsコレクションを使用して、 まず、Oracle8で繋ぎにいき、それでエラーが起これば Oracle10gで繋ぎにいく、という処理を行っています。 【参考コード】 dim db as object dim tdf as object set db = CurrentDb set tdf = TableDefs("テーブル名") tdf.Connect = "(※テーブルのプロパティの説明のところに入る文)" tbf.RefreshLink (※ここが8と10gで違ってくる) よろしくお願いします。

  • LinuxでOracleをインストールする際について質問です。

    LinuxでOracleをインストールする際について質問です。 私の知識のレベルとしてはLinuxは、今回初めて使用するため、専門的な知識はありません。 現在、以下のVerでLinuxにOracleをインストールする仕事を任されています。(DBサーバ環境構築) Linux :RedHatEnterprise LinuxE3 release4 Oracle:Oracle10g HP-Tru64 そこでですが、手順(http://otndnld.oracle.co.jp/document/products/oracle10g/102/hptru64/B31755-01/toc.htm)通りに進めていますが、以下のコマンドを入力したときにバイナリエラーが発生し、インストールができません。 コマンド → ./runInstaller エラー内容 cannot execute binary file シェルスクリプトを解読すると、「.oiu」というOracle Universal Installerというものが 引っかかってる様子でした。 エラー内容で調べてみると、日本語のコメントが原因とあり、「#!/bin/bash」をシェルスクリプトに付けたのですが解決しません。 大変申し訳ございませんが、有識者の方ご回答願います。 また、個人的ですがLinux関連のインストーラはrpmファイルが一般的だと思っていたんですが、 oracleのようなrpm以外でもできるのでしょうか?

  • OS認証時にOracle Net Manager接続ができない

    solaris9、Oracle10gの環境です。 データベースへの接続はOS認証にて接続しています。 oracle clientの「Oracle Net Manager」にて接続時のuserid/passをOSのuserid/passとしてネットワーク接続をしていますが接続できません。 ご教授願います。

  • Oracle「ローカル・ネット・サービス名構成」をスクリプトで行うことは可能でしょうか?

    いつもお世話になっております。 表題のままなのですが、 Oracleサーバへ接続する際に、「Net Configuration Assistant」を利用して「ローカル・ネット・サービス名」を構成しますが、 それをスクリプトで行うことができないかを調べております。 ここで言うスクリプトとは、バッチプログラムなどをイメージしております。 ご存じの方、ご教授願います。 環境 DBサーバ:Oracle10g クライアント:XP 以上、よろしくお願い致します。

  • Oracle Net Services(旧NET8)について

    現在、PROCやシェルでoracleにアクセスするアプリケーションがあります。(同一サーバ上にOracleが存在) これをアプリケーションだけのサーバとDBだけのサーバに分けたい場合、「Oracle Net Services」(旧NET8)を使用すれば可能になると思うのですが、その場合、既存のPROCやシェルに対して手続きなどを変更する必要はあるのでしょうか?それともオラクルのサービスを変更するだけで解決できるものでしょうか?

  • Oracleのエクスポート、インポートについて困っています・・・

    Oracleのエクスポート、インポートについて詳しい方にお伺いしたいのですが。 質問の内容と、スペックですが、 エクスポートの対象にしているOSがlinuxで、DBがOracleです。このサーバーは私のローカル内にありません。 インポートしたいデモ環境(OSがlinuxで、DBがOracle)が、私のローカル内にあります。二つとも別場所です。 お分かりのとおり、この対象OSのOracle内のデータとデモ環境(OSがlinuxで、DBがOracle)のOracle内のデータを 同じようにしようとしております。 私のOSはwindowsXPで、Oracleはインストールしておりません。 これが痛くてフリーソフトをあれこれ使おうとすると、SQL*Net(有料?あまりよくわからない)が必要なことを知ってより困っています。 この私の環境(OSはwindowsXPで、Oracleはインストールしていない)で 別場所のOracleからエクスポートし、自分のローカル内にあるデモ環境(OSがlinuxで、DBがOracle)のOracleに インポートできるフリーソフトってあるのでしょうか。 別場所であろうが、自分のローカル内だけであろうが、 エクスポートだけしかできないフリーソフトでもほしいです。 ないとは思いますが(結構、調べたので)、もし、ご存知のかたがいれば教えていただけないですか。 あと、実際、上記のような質問をしていますが、やはり、この件に関しては、 コマンドプロンプトを開いてimp/expをするのがよいのでしょうか。 できるだけ、シンプルな方法をつかみたい次第です。 もし、コマンドからの操作しかないのでしたら、 imp/expにおいて気をつけなければいけないこと等はあるのでしょうか。 expはDBに危険がないような気がするのですが、impはなにかと気をつけないといけなさそうな気がしますが・・・。 初心者すぎる質問で見苦しく恐縮です。 OracleのSQL文もよく知らないもので。 できれば詳しい方、よろしくお願いします。

  • オラクルに接続できない

    すみません、オラクルに接続しようとすると、 「ORA-01033:Oracleの初期化またはシャットダウン中です」とメッセージが表示され、 接続できません。 そこでsysdbaで接続し、shutdownを行った後にstartupを行うと、 「ORA-12514: TNS: リスナーは接続記述子でリクエストされたサービスを現在認識していま せん」とメッセージが表示され、復旧できない状態です。 どのようにすれば復旧・接続できるようになるのでしょうか? ちなみにオラクルはoracle11gです。

  • VBA Oracle接続について

    現在、Access2013+oo4oでOracle11gのDBに接続しています。 今回、DBをOracle12cに変更しようとしています。 Oracle12cよりoo4oがサポートされなくなり、使用することが出来ないとの事で ODP.NETでの接続に変更しようとしていますが可能なのでしょうか? ちなみに以下を行ったところ、うまくいきませんでした。 (1)Oracle.DataAccess.dllのインストール OracleClientのインストールをカスタムで行い「Oracle Data Provider for .NET」 を個別にインストールしました。結果以下にDllがインストールされました。 C:\app\client\administrator\product\12.2.0\client_1\ODP.NET\bin\ 4\Oracle.DataAccess.dll (2)参照設定で追加 上記のdllをAccess2013の参照設定より参照の追加をしようとすると以下の エラーになりました。 「指定されたファイルへの参照は登録できません」となりました。 以上、宜しくお願いします。

  • Oracleが突然接続不可に!

    環境:Oracle9i 9.2.0.1.0 言語:VB6 ネットワーク:VPN DBサーバは本社に1つしかなくクライアントは全国数社から動作している受注システムですが突然DBサーバが接続できなくなってしまいました。 そのとき行ったイベントとしては1つの支社にVPNを接続しようとしていたらしくルータの変更等をしていた模様です。限りなくネットワークの設定で障害が発生したんじゃないかと思われるのですが障害中のとき、社内でDBサーバのIPは接続できており、クライアントからSQLPLUSで接続しようとしても接続できない状態でした。ということでORACLEの問題じゃないのかと疑われています。 しかし、そのときORACLEでは何もしていないため、誤解を説明したいのですがORACLEではないと証明するためにはどうすればよいでしょうか? SQLNET等の設定を変更していないからORACLEの問題ではないと言えばいいのかどう説明したら理解してもらえるか悩んでいます。 情報不足で申し訳ありませんがアドバイスお願い致します。

  • ORACLEの互換問題について

    はじめまして。 DBにORACLEを使って業務システムを開発している者です。 現在の環境は サーバ OS:Windows2003 Server DB:Oracle9i Release 2 クライアント  OS:WindowsXP DB:Oracle8.0.5 となっているんですが、Oracle9iに対してOracle8.0.5から データのエクスポートは可能なのでしょうか? 現段階ではサーバから直接エクスポートする方向で考えているんですが・・・ 宜しければ助言の方をお願い致します。

専門家に質問してみよう