- ベストアンサー
現在の接続先の取得方法
SQL*Plus を使用して、作業した後、 接続先は同じままユーザを変える時 connect ユーザ/パスワード@接続先 と入力しますが、この接続先を毎回入力するのが煩わしいので、 なんとか省略できないものかと思ってます。 ユーザ名を引数として受け取り、現在の接続先を自動的に取得して、 同じ接続先に connect するSQLファイルを作成しようとしているのですが、 現在の接続先を取得するにはどうしたらよいのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
事前に環境変数を以下のように設定 SET LOCAL=接続先 以後のSQLPLUSは、省略時接続先が環境変数に従います。
その他の回答 (4)
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
>接続先が複数ある場合は、 >毎回LOCALを書き換えなければならないのでしょうか? 接続先を省略したい/接続先を切り分けたい、という矛盾する質問に思えるのですが・・ 省略するための手法は判ったのだから、あとは自分の使いやすいように知恵を絞ってください。 私なら、SQLPLUSなりSQLPLUSwを起動するバッチファイルを接続先毎に用意しますけどね。 (そのバッチファイルのなかで、SET LOCAL=を書けば良い)
お礼
ありがとうございます。 接続先1にユーザAとB、接続先2にユーザCとDがあるとして、 その4つを使う場合に、スムーズにユーザ変更ができないかと思いまして。 AからBの時には同じ接続先なので、同じことを入力するのが煩わしいし、 AからCの時に、SQL*PLUSでどうやって環境変数を変えたらいいのかと。
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
>>事前に環境変数を以下のように設定 >>SET LOCAL=接続先 事前に・・と書きましたが、コマンドプロンプトで、 c:\> SET LOCAL=HOGE c:\> SQLPLUS SCOTT/TIGER または、コントロールパネルのシステムで環境変数を設定し、SQLPLUSを起動する。 のような使い方を念頭に書きました。 #3さん 思いこみでWindowsプラットフォーム前提の回答をしました。 確かに、unixプラットフォームについては、two_taskですね。
補足
接続先が複数ある場合は、 毎回LOCALを書き換えなければならないのでしょうか?
- MZ-80B
- ベストアンサー率56% (46/81)
#2さん 記憶ではLOCALはWindows固有ではなかったですか? UNIXだとTWO_TASKかな?
- MZ-80B
- ベストアンサー率56% (46/81)
conn &1@&_CONNECT_IDENTIFIER というファイルを作って @file username/pass かな
補足
上記を行ったところ、 _CONNECT_IDENTIFIER に値を入力してください と表示されました。 何か設定が必要でしょうか?
補足
上記を行ったところ 不明なSETオプションです と表示されてしまいました。 DBサーバはUNIX SQL*Plusを起動しているのはWindowsです。