• ベストアンサー

sqlplusについて教えてほしいです

soralisにオラクルをインストールしたサーバがあります。 コンソールから sqlplus接続 → select文発行 → sqlplusから抜ける といった動作を1命令でできないでしょうか? できるらしいと聞いたのですが、調べてもイマイチ見つかりません。 これを発行した後、戻り値を調べて、 正常にデータベースに接続できたか確認するつもりなのですが・・・ 初心者なので、なるべく詳しく教えてください。 お願いします。

  • Oracle
  • 回答数1
  • ありがとう数0

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

  • ベストアンサー
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

batファイルとsqlファイルを作成すればいいと思います。 たとえば、 [test.bat] @echo off rem データベースに接続 sqlplus -l username/password @test.sql rem エラー判定 if %errorlevel% EQU 0 ( echo "OK" ) else ( echo "NG" ) [test.sql] --エラーコード設定 whenever oserror exit -1 whenever sqlerror exit -1 --select実行 select sysdate from dual; --sqlplusを抜ける quit というようなファイルを作って、test.batを実行します。

関連するQ&A

  • windowsでのsqlplusについて

    環境:2000Server、Oracle8i やりたいこと:OracleDBに接続可能な状態かを、バッチで自動調査したい。 今までlinux環境でやっていた処理を、上記環境でも行わなくてはいけなくなりました。 作業用クライアントでバッチを実行して、自動でチェックする想定です。 以下、今までlinux環境で使用していたソースです -------------------------------------------------- sqlplus -l -s USER/PASS@SID <<EOF | grep AAA select 'AAA' from dual; EOF if ($? == 0) then ~ -------------------------------------------------- 上記シェルを実行し、 ・DBに接続できる ・select文が正常に実行できる(問い合わせができる) ことを確認し、sqlplusを自動で抜けて、 戻り値が0ならOKとしていました。 これと全く同じことをwindows環境で行いたいのですが、 どのように記述すればいいのでしょうか? 詳しい方、ぜひ教えてください。

  • SQLplusについて

    ローカルPCからSQLplusを使いたいのですがサーバーへ接続するためには何が必要でしょうか? 初心者ですみません。

  • 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文の編集を行っています   ノートパッド(エディタ)を他のエディタに  設定変更したいのですが、  どのようにすればいいのでしょうか?

  • OracleのSQLPLUSログインについて

    sqlplusにてデータベースにアクセスできません。 どなたか知恵をお貸しください。 環境は、LinuxにOracle10gをインストールしました。 インストールと同時にデータベース(orcl)を作成しました。 インストールしたマシンにて、sqlplusを実行してみようとしているところです。 Oracleのインストール、データベースの作成が終了し、 コマンドラインから"sqlplu /nolog"を実行し、データベースに 接続しようとしましたが、エラーと表示されます。 コマンド、エラーは以下の通りです。 SQL> conn sys/manager as sysdba ERROR ORA-12162: TNS:net service name is incorrectly specified Oracleのインストール、データベースの作成を行った Linuxのユーザは"oracle"です。 この場合、ユーザ名はoracleが正しいのでしょうか?

  • Oracle sqlplusで接続できなくない

    お世話になっております。 Oracle11gを使っています。 PROCESSESの値を変えようとして、 以下のコマンドを実行しました。 ALTER SYSTEM SET PROCESSES = 10 SCOPE = SPFILE; Oracleを再起動した後、 sqlplusを使ってログインできなくなってしまいました。 表面的には、 ORA-12514: TNS: リスナーは接続記述子で要求されたサービスを現在認識していません。 というメッセージなのですが、サーバのログに以下の記述を見つけました。 ORA-00444: background process "MMAN" failed while starting ORA-00020: maximum number of processes () exceeded PROCESSESの値が小さすぎたようです。 SPFILEに定義されているので、 変更するにはsqlplusで接続して、 再度ALTER SYSTEM コマンドを実行すると思うのですが、 そもそもsqlplusで接続できないので、変更することができません。 データベースOpen時に、 nomoutにしてPFILEから起動しようとするとしても、 これもまた、接続できないので、使えない手段でした。 また、SPFILEのバックアップも取っていなかったので、どうにもなりません。 この窮状から復旧する方法について、教えていただければ幸いです。 よろしくお願いします。

  • listener.logが肥大化

    Oracle11gでlistener.logが肥大化し、4GBまでいってしまい、 停止しました。 ログをスイッチし、Oracleは動作したのですが、 アプリケーションサーバからアプリケーションが動作しません。 例えば、SQLPLUSでSQLを発行すると正常ですが、 dllからは動作しません。 なんとなくですが、with句を用いたものが失敗しているようです。 やっぱりアプリケーションサーバを再起動でしょうか? 日曜日まで再起動ができないため、何か方法があればご教示ください。

  • selectの単純繰り返し

    oracle11gで sqlplusで接続して、とあるテーブルのselectを100回繰り返したいのですが for文はどう書けばよいのでしょうか ↓selectはこんなのでOKです select * from testtable;

  • Oracleで「文字が無効です」のエラーが出ます

    Oracleで「文字が無効です」のエラーが出ます JavaからOracleに接続して、SELECT文を発行していますが、何度試しても上記のエラーが出ます。 発行しているSELECT文を、SQLPlusから打ち込むとちゃんと実行できます。 何が悪いのか見当がつきません。 お知恵をお貸しください。 ちなみに、対象テーブルの項目はvarchar2とnumberだけの項目ばかりで、日本語は使ってません。 また、Oracle初心者です。 環境 端末:WindowsXP Oracle:10g Express Edition ※文字コードはAL32UTF8 IDE:Eclipse3.5 ※設定-一般-ワークスペースのテキストファイルエンコードはUTF-8

  • SQLPLUSの接続に関して

    Oracle Database 11g Express Editionをインストールし、各設定をした後、 SQL-PLUSにて接続を試みています。 その際に、 sqlplus ユーザ名/パスワード@サーバIP の場合接続ができるものの、 sqlplus ユーザ名/パスワード@サービス名(XE) では接続ができません。 エラーの内容としては、  ORA-12154 TNS 指定された接続識別子を解決できませんでした となってしまいます。 “TNSPING XE”、”TNSPING サーバIP”は、いずれも問題なく通ります。 また、tnsnames.ora は、 XE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.59)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) ) と記載がある為、問題はないかと思われます。 名前解決がうまくいってない気がしますが、どこを修正すれば良いでしょうか、、、 環境変数は特にいじっていません、、、 初歩的な質問で申し訳ありません。 教えて下さい。 よろしくお願いします。