• ベストアンサー

新規追加ユーザでsql*plusを使用できるようにするには

REDHAT enterprise 3にoracle10gの環境です。 REDHATにユーザを追加しましたがsql*plusを使用できません。 環境変数に設定が足りないようなのですが、具体的にどのファイルに何の設定が必要なのか分かりません。 ご教授ください。

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

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

  • ベストアンサー
  • MZ-80B
  • ベストアンサー率56% (46/81)
回答No.3

SIDの指定はあっていますか、大文字小文字も正しく設定する必要があります。 正確には export ORACLE_SID=ORCL ではありませんか? ORACLE_HOMEの情報は/etc/oratab からSIDで抽出しています。 設定値を確認して正しいORACLE_SIDを設定してください。 # oraenvはスクリプトなので中身をみれば原因もわかると思います。

その他の回答 (2)

  • entree
  • ベストアンサー率55% (405/735)
回答No.2

最低限、ORACLE_HOME, ORACLE_SIDが必要です。 必要に応じて、NLS_LANG (普通は必要) を設定したり、$ORACLE_HOME/binにパスを通したりしてください。

  • MZ-80B
  • ベストアンサー率56% (46/81)
回答No.1

シェルに bash を使用しているならORACLE_SIDとNLS_LANGの設定を追加して oraenv を呼び出します。(Cシェル系なら coraenv) ~/.bashrc ファイルの例 ... export ORACLE_SID=xxx (自分のSID) export NLS_LANG=yyy (クライアントの言語、国、文字コードの設定) export ORAENV_ASK=NO (oraenv を対話モードにしない) . oraenv ...

参考URL:
http://biz.rivus.jp/dba_tips_environment.html#w4ce20cd
shizu1234
質問者

補足

ご回答有り難うございます。 早速下記内容を.bashrcに追加しましたが sql*plusは稼働しませんでした。 何が行けないのでしょう?? --------------------------------------------- export ORACLE_SID=orcl export NLS_LANG=American_Japan.JA16EUCTILDE export ORAENV_ASK=NO . oraenv PATH=$PATH:$ORACLE_HOME/bin --------------------------------------------- また、redhatにログイン時 ORACLE_HOME = [/home/oracle] ? と聞かれます。なぜですか?

関連するQ&A

  • crontabでsql/plusの起動

    シェルスクリプトでsql/plusを呼び出し、ストアドプロシジャを 実行しようとしているのですが、crontabを使ったスケジュール起動を 行おうとすると、以下のようなエラーになってしまいます。 Message file sp1<lang>.msb not found Error 6 initializing SQL*Plus not foundと言われているファイルに心当たりがありません。 sql/plusがバックグラウンドで使っているファイルなのでしょうか? ちなみに、crontabを使わずに、コマンドラインから このシェルスクリプトを実行すると、正常に動作します。 UNIXもシェルスクリプトも超初心者です。 ご存知の方おられましたら、ご教授願います。 OSはRedHat6.2J、Oracle8.1.7です。

  • sql plusのダウンロードとインストール

    会社でOracleのデータベースを使用しているので、自宅で勉強しようと思いネットで検索したところ、制限はつくものの無料で使用することができる Oracle 10g Express Editionというものを発見し、早速インストールしてみました。 しかし、会社の研修ではsql plusというもので、操作を行っていたのですがこのOracle 10g Express Editionにはsql plusが入っていませんでした もしかしてこのOracle 10g Express Editionではsql plusは使用することができないのでしょうか? 参考書として、現場で使えるSQLという本に、Oracleのインストール方法とsql plusの使用方法は書いてあるのですが この本でインストールしているものはoracle database 10g release 2という30日間のみ使用可能なトライアル版であり 今回私がインストールしたOracle 10g Express Editionの説明ではありません。 この本にはoracle database 10g release 2をインストールすると スタートメニュー→プログラム→oracle -oraclient 10g_home1→アプリケーション開発→sql plusとう順番でsql plus起動させることができますが、私のPCにはスタートメニューにsql plusはありませんでした。 どなたかOracle 10g Express Editionでsql plusを使用する方法を知っているかたはいないでしょうか? 長文かつわかりにく文章で申し訳ございませんが教えていただけると幸いです。

  • SQL*Plusから接続出来ません

    使用OS:Windows2000Server Oracle9i Clientをあるパソコンにインストールを行い、SQL*Plusを起動してユーザ名、パスワード、ホスト文字列を入力しOKボタンをクリックしても、接続することが出来ません。 ちなみに、Oracle Enterprise Managerからは接続出来ます。何故このようなことが起こるのでしょうか?以上、宜しくお願い致します。

  • sql plusの初回ログインについて

    oracle Database 10g bronzeの黒本についているoracle database 10g 30日間トライアル版をインストールして、sql plusを起動しました。log on画面が表示されて・user name ・password ・Host stringを入力しなければならないのですが、何を入力すればいいのか分かりません。トライアル版のインストール中に、sql plusのログイン方法の説明はなく、cdのどのファイルを読めばいいのかも分かりません。分かる方がいらっしゃいましたら教えてください。よろしくお願いします。

  • ストアドをSQL*PLUSで実行したい。

    こんにちわ。 いまORACLE10gのPLSQLでストアドプロシジャを作成しています。 CREATE OR REPLACE PROCEDURE procXXXXXXXX ( oCNT1 OUT NUMBER , oCNT2 OUT NUMBER , nRET OUT NUMBER ) IS ~ というものですが,これをSQL*PLUSでテストとして実行したいのですが,変数定義などどうすれば良いでしょうか? 教えてください。よろしくお願いします。

  • Oracle10.2インストール後、インストールOSのユーザでない他のユーザからSQLPLUSを使うには?

    Oracle10.2をRed hat Linux ES4にインストールしました。 インストール後、環境変数(NLS_LANG、ORACLE_HOME等)を 設定し、SQLPLUSを実行しました。 インストールしたOSのユーザ(oracle)でない 他のOSユーザから(user1)からSQLPLUSを実行をしようとすると 実行ができません。この問題は、実行ファイル等に 読み取り、実行権限(rx)ないということまでわかりました。 インストールしたユーザのグループに追加してもSQLPLUSを 使うことはできませんでした。 通常、インストールしたユーザ以外のユーザからSQLPLUS (exp、imp等 $ORACLE_HOME/binにある実行ファイル)を 使うにはどのように設定すればよいのでしょうか??

  • SQL*PLUSに関して

    標記の件に関しまして 私はデータベースに関する知識は全く無いのですが SEが私のクライアントに設定した SQL*PLUSを使用してた売上データベースからのデータの抽出 機能がありまして これとは違う条件でのデータ抽出が必要となり 何とかSQL文を部分的に加工して目的が達成できるかどうか 調べているところであります。 ■疑問点■ SQL*PLUSのコマンドファイルは既に作成されていて @~でメモ帳ファイルに記述されているSQL文を 指定すればSPOOLでデータが別のテキストファイルに 抽出されるようになっているようです。 この場合に 既存のSQL文が記述されているメモ帳ファイルの抽出条件を 加工してコマンドにて加工後のファイルを@~で実行すれば 必要としているデータを抽出することができるでしょうか? あと 現在使用しているSQLで下記の部分が共通して記述されて いるのですがこれはどういった意味でしょうか。 SET ECHO OFF SET HEADING OFF SET PAGESIZE 0 SET FEEDBACK OFF SET LINESIZE 30000 SET TRIMSPOOL ON SPOOL C:ファイルの場所 ■ここに抽出条件があるようです。■ SPOOL OFF EXIT 0; 大変申し訳ございませんが 現在はSEから購入したシステムから紙ベースで 出力して手作業で入力を行っているため 何とかデータベースから直接抽出できないか 模索しているところであります。 アドバイス頂けますでしょうか。 宜しくお願いします。

  • 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環境が存在するので正常にコンパイル。

  • SQLサーバー2000のデータベースユーザーにログイン名が設定されていないものがある

    現在使用している環境で、 SQLサーバー2000上に、ログイン名が設定されていないデータベースユーザーが存在します。 ログインIDを設定せずに、データベースユーザーを作成する事が出来るのでしょうか? 方法を検索しているのですが、私の力では見つける事が出来ません。 どなたかご助力頂ければと思い投稿させて頂きました。 使用環境は、下記のようになります。 ・ Windows2000サーバー ・ SQL2000サーバー エンタープライズ版 以上、よろしくお願い致します。

  • SQL*PLUSでファイルからDELETE文

    お世話になります、 Oracle8のSQL*PLUSを使用方法についての質問です。 ローカルにファイル(delete.sql)を作成して SQL*PLUSからそのファイルを流してファイルの中身の処理を実行するという方法をご存知の方が いらっしゃったらおしえてください。 --delete.sqlの中身--------- delete from table_a delete from table_b delete from table_c delete from table_d delete from table_e 以下省略 よろしくお願いします。