• 締切済み

HP-UXのOracleへのSQL

ORACLEインスタンスへ接続する場合、ローカル接続なら環境変数でORACLE_SIDを登録しておけば、sqlplus user/passwd でつながりますが、ネットワーク接続でおなじようなことはできないでしょうか。 つまりは、sqlplus user/passwd@DB名 でなく、なにかしら変数を設定して、 sqlplus user/passwd のみでネットワーク経由で他のサーバのインスタンスに接続できるでしょうか??

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

HP-UXについて詳しくないのですが、 WindowsNTの場合は環境変数LOCALに接続文字列を記述しています。 その線ではいかがでしょうか?

関連するQ&A

  • SQLスクリプト内で、${変数}と記述しても値を認識できない?

    USER.TABLE_LNK_TRG.shにて、トリガ作成スクリプトUSER.TABLE_LNK_TRG.sqlをコンパイルしようとしています。 USER.TABLE_LNK_TRG.shとUSER.TABLE_LNK_TRG.sqlともに 変数ORACLE_SID_1の値としてdb1、 変数ORACLE_SID_2の値としてdb2 が入っているはずなのですが、USER.TABLE_LNK_TRG.sql内では ${ORACLE_SID_1}と${ORACLE_SID_2}がそのまま文字列として解釈され (変数の値であるdb1、db2にはならない)、コンパイルに失敗します。 逆にUSER.TABLE_LNK_TRG.sql内で、${ORACLE_SID_1}と${ORACLE_SID_2} を使わず、直接db1、db2と記述すると成功します。 トリガ作成スクリプトUSER.TABLE_LNK_TRG.sql内で、${変数}は使えないのでしょうか? 環境はOSはSolaris、DBはOracle9i、シェルはBシェルです。 _______________________________________________________________ ~USER.TABLE_LNK_TRG.sh~ #!/bin/sh ORACLE_SID_1="db1" ORACLE_SID_2="db2" #トリガコンパイル sqlplus aaa/aaa <<-EOF @USER.TABLE_LNK_TRG.sql quit EOF exit ______________________________________________________________ ~USER.TABLE_LNK_TRG.sql~ CREATE OR REPLACE TRIGGER USER.TABLE_LNK_TRG BEFORE UPDATE ON USER.TABLE FOR EACH ROW declare begin update TABLE@${ORACLE_SID_1}_lnk set col = :new.col; update TABLE@${ORACLE_SID_2}_lnk set col = :new.col; exception when others then null; end; / _______________________________________________________________ ※${ORACLE_SID_1}、${ORACLE_SID_2}のままコンパイルされるので、  ${ORACLE_SID_1}_lnkのDB環境、${ORACLE_SID_2}_lnkのDB環境が存在せずコンパイルエラー。  逆に直接db1、db2と記述するとdb1_lnkのDB環境、db2_lnkのDB環境が存在するので正常にコンパイル。

  • オラクルとOSの相互のユーザーの関係

     Linux + オラクル 8.1.5を使っています。  ORACLE_OWNERに oracle というユーザーを指定して インストールしました。ORACLE_SIDには odb を指定しました。  不思議なのですが、Linux上でORACLE_OWNERである、 oracleユーザーになれば sqlplusを使って、 system/managerでログインできます。 % sqlplus system/manager Linux上で他のユーザー(rootなど)の場合は、 同じアカウントでもオラクルにログインできません。 ORA-01034: ORACLE not available というエラーになります。 環境変数は oracleユーザーでもrootでも同じにしてます。 こちらの過去ログでは「メモリ不足」などの説もありますが、 特定のアカウントだけの問題なのでそれもないと思います。 Linuxのユーザーとオラクルのユーザーにはどういう関係が あるのでしょうか?  ご教授いただければ幸いです。  具体的にやりたい事は apache などから php経由で webuserユーザーなどのWEBサーバの動作権限で、 select、insertなどができるユーザーを作成したいのです (Enterprise Managerなどを使わずに・・というか 手元のWindowsクライアントCDにはそんなGUIアプリは 入ってなかったので・・)

  • オラクル ORA-01034

    MiracleLinux1.1 + Oracle 8i(r8.1.7)を使っています。  先日も質問させていただいて解決したかと思ったのですが 解決しておりませんでした。すいません。  現在、Oracle8iをインストールして、その際にユーザー oracleと、グループdba, oinstallを作っています。 ユーザーoracleになれば、何の問題も起こらないのですが、 新しいユーザー(例えばWEB用の webuser など)を作成 すると、このユーザーがログインできません。 % sqlplus system/manager ORA-01034: ORACLE not available というエラーになります。  環境変数は ユーザーoracleと同じにしています。 違うのは USER, MAIL, PWD くらいです。  webuserを dba, oinstallに所属させてみてもだめな ようです。 /etc/group %sqlplus system/manager@sid の書式を使ってみると ORA-12154: TNS: could not resolve service name というエラーになってログインできません。  なにかアドバイスなどいただければ幸いです。

  • Oracleが突然接続不可に!

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

  • ORACLE接続について

    環境 Oraccle9i 9.2.0.1.0 新たに支社ができて支社から本社にあるDBサーバーに接続を試みましたが接続できませんでした。 ネットワーク環境はフレッツのグループアクセスプロというVPN経由で接続しています。各種設定を行い、PINGは通るようになっています。 ポートもDBサーバはデフォルトなので1521を空けています。 ちなみに遠隔地から接続するのは今回が初めてです。 本社内ではTNSPINGも通っておりOracleサーバで設定が足りないということはないと思うのですが。。 現在Oracleの設定の問題なのかネットワーク設定の問題なのかの切り分けもできていない状況です。 どなたかご教授お願い致します。

  • SQLPLUS USER/PASSログインできない

    sqlplus testuser/passwd@TESTの形式ではログインできますが、sqlplus testuser/passwdだとORA-01034、ORA-27101が発生します。 ORACLE_SIDは正しくセットしていますが、どのように調査すればよいか分かりませんので、教えて下さい。 以下は実行結果です。 USER[2]% sqlplus testuser/passwd@TEST SQL*Plus: Release 11.2.0.1.0 Production on 水 1月 11 22:19:45 2012 Copyright (c) 1982, 2009, Oracle. All rights reserved. Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options に接続されました。 SQL> exit Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing optionsとの接続が切 断されました。 USER[3]% setenv ORACLE_SID TEST USER[4]% env | grep ORACLE ORACLE_SID=TEST ORACLE_HOME=/opt/app/oracle/product/11.2.0/dbhome_1 ORACLE32_HOME=/home/oracle2/32Bit ORACLE_TERM=sun5 USER[5]% sqlplus testuser/passwd SQL*Plus: Release 11.2.0.1.0 Production on 水 1月 11 22:20:17 2012 Copyright (c) 1982, 2009, Oracle. All rights reserved. ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist SVR4 Error: 2: No such file or directory プロセスID: 0 セッションID: 0、シリアル番号: 0

  • オラクルとの接続

    VBにてオラクルと接続する場合の記述を教えてください。 ちなみにオラクルのユーザー等は下記の通りです。   サーバー:ローカル   UID:TOKYO   PWD:TOKYO   SID:NIPPON 宜しくお願いします。

  • oracle 9i と SQL SERVER 2005 DBリンクにつ

    oracle 9i と SQL SERVER 2005 DBリンクについて とても困ってます。 よろしくお願いします。 仕事で、oracle 9iとSQL SERVER 2005をDBリンクさせて、oracle 9iのTableとSQL SERVER 2005のTableを結合させて、SELECT文を作成したいです。 本番環境は、DBサ―bとWebサーバは別々でとりあえずlocal開発環境を作成しています。 <確認したこと> ・global_names = Flase ・ODBCの設定はSQL SERVER 2005に接続確認しました。  →データソース名は、「SQLSRV」です。 ・inithsodbc.oraの設定    HS_FDS_CONNECT_INFO = SQLSRV    HS_FDS_TRACE_LEVEL = OFF ・LISTENER.ORAの設定(編集後再起動しました)  → (SID_DESC = (SID_NAME = HSODBC) (ORACLE_HOME = D:\oracle\Ora9IUTF) (PROGRAM = hsodbc) ・TNSNAMES.ORAの設定 HSODBC = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =localhost)(PORT = 1521)) ) (CONNECT_DATA = (SID = HSODBC) ) (HS = OK) ) ・DBリンク作成(小文字を認識するため、ダブルクォーテーションで囲います)   CREATE DATABASE LINK DB_LINK_SQLSRV   CONNECT TO "ユーザ" IDENTIFIED BY "パスワード" USING 'HSODBC'; ・SELECT文   SELECT * FROM テーブル名@DB_LINK_SQLSRV; 上記の手順ですが、サービス名が解決できません。

  • Oracleのデータベースに接続できない。

    OS : WindowsXP SP2 Perl : ActivePerl 5.8.8 DBD : DBD-Oracle1.17 DB : Oracle9i PerlでOracleのDBサーバに接続ができません。 ソースは以下の通りです。 ================================================================================ #!perl -w use DBI; $dbh = DBI->connect('dbi:Oracle:test', 'scott/tiger') or die "An error occured : $@"; $dbh->disconnect; exit 0; ================================================================================ 上記コードを実行すると、connectの行でdieします。 ================================================================================ D:\test>perl ttoracle.pl DBI connect('test','scott/tiger',...) failed: ORA-12705: Cannot access NLS data files or invalid environment specified (DBD ERROR: OCISessionBegin) at ttoracle.pl line 5 An error occured : at ttoracle.pl line 5. ================================================================================ Oracleのサーバーはローカルにあり、ポートもデフォルトの設定です。 試しに、 $dbh = DBI->connect('dbi:Oracle:test@localhost:1521', 'scott/tiger') or die "An error occured : $@"; としましたが、結果は同じでした。 また、エラーの内容的に環境変数かと思いORACLE_HOMEを環境変数にセットしてみましたが、これもまた、結果は同じでした。 DBの接続については、sqlplusコマンドからであれば問題なく接続できます。 (コマンド:sqlplus scott/tiger@test) やはり、環境変数まわりの設定が問題でしょうか? よろしくお願いします。

  • オラクルのグローバルデータベース名について

    グローバルデータベース名またはSIDはどこに設定されているのでしょうか?環境変数?レジストリ? 問題はOracle8iをアンインストールしてOracle9iのインストール時に同じグローバルデータベース名もしくはSIDがありますというエラーメッセージが出てしまいます。同じ名称でDBを作成したいのですが。 アドバイスお願いします。