ベンダーさんにお願いしてクラウド上にDBサーバとクライアントサーバ(Linux)を構築してもらった際、環境変数ORACLES_SIDを設定しているにもかかわらずSQL*PlusでSID指定でないと接続できないと報告したら「DBサーバとクライアントサーバが別になっている場合はコマンド上でSIDを明示しないと動かない」と返信貰ったので、
ん?つまり環境変数ORACLE_SIDを設定していてもこれではだめで
$ sqlplus scott/tiger
これに置き換えないと動かないと?そんなアホな。
$ sqlplus scott/tiger@SID
と思ったので「SQLPlus 環境変数」で検索してみたら、検索1ページ目のトップに回答が。 docs.oracle.com
パラメータまたは変数 | 説明 |
---|---|
TWO_TASK | 接続文字列を指定するUNIX環境変数。データベースを指定しない接続は、TWO_TASKに指定したデータベースに接続されます。 例 TWO_TASK=MYDB export TWO_TASK sqlplus hr これは、次のように解釈されます。 sqlplus hr@MYDB |
公式のユーザーガイドにズバリ回答書いてあるやん。しかもOracle12のユーザーズガイドだから随分前から存在する、即ち枯れた情報みたいですな。
UNIX系で環境変数ORACLE_SIDが効かない場合は環境変数TWO_TASKを設定するのがお作法なのかな。
設定したらSQL*PlusのコマンドにSIDを指定しなくても繋がりました。