Oracle Database XEの操作を行うには、通常、データベースにデータベース・ユーザーで接続する必要があります。操作は、SQLコマンドライン、SQL Developer、またはシステムのコマンドラインから起動したユーティリティを介して行います。
この章では、SQLコマンドライン(SQL*Plus)に焦点を当てます。SQL Developerでデータベース接続を使用する方法については、『Oracle Database Express Editionスタート・ガイド』のデータベース接続の作成に関する項を参照してください。該当の項では、ローカル・システム上のロックされていないすべてのアカウントの接続を自動生成する便利なテクニックについても説明しています。
この章は、次の項目を含みます。
Oracle Database XEでは、SQLコマンドライン(SQL*Plus)とデータベースの間のローカル接続、またはTCP/IPネットワーク経由のリモート接続をサポートしています。SQLコマンドラインでOracle Database XEに接続する際に使用する方法は、ローカル接続とリモート接続のどちらを開始するかによって異なります。ローカル接続およびリモート接続については、次の項で説明します。
ローカルで接続するということは、Oracle Database XEがインストールされているホスト・コンピュータ(Oracle Database XEのホスト・コンピュータ)でSQLコマンドライン(または他のOracleコマンドライン・ユーティリティ)を実行してから、SQLコマンドライン(または他のユーティリティ)からデータベース接続を開始すること、またはSQL Developerを使用してローカル・データベース・ユーザーとして接続することを意味します。ローカルで接続するには、データベース・ユーザー名とパスワードのみを指定する必要があります。たとえば、図3-1は、ユーザーがSQLコマンドラインを使用してローカルで接続し、connect
コマンドでユーザー名hr
とパスワードhr
を指定している例を示しています。
環境変数
Linuxでは、ローカル接続を確立する前に、環境変数を設定する必要があります。詳細は、「環境変数の設定」を参照してください。
注意: Oracle Database XEのホスト・コンピュータにssh (またはtelnet )セッションでログインして、SQLコマンドライン(または他のOracleコマンドライン・ユーティリティ)を起動した場合は、たとえリモート・コンピュータ上のssh (またはtelnet )アプリケーションを起動した場合であっても、ローカル接続とみなされます。 |
リモートで接続するということは、Oracle Database XEのホスト・コンピュータ以外のコンピュータでSQLコマンドライン(または他のOracleコマンドライン・ユーティリティ)を実行して、SQLコマンドライン(または他のユーティリティ)からネットワーク経由でデータベース接続を開始することを意味します。
Oracleクライアント・ソフトウェア
リモート・コンピュータには、Oracleクライアント・ソフトウェアがインストールされている必要があります。Oracleコマンドライン・ユーティリティ(およびアプリケーション)のデータベースへの接続は、Oracleクライアント・ソフトウェアを介して行われます。Oracle Database XEは、次のすべてのタイプのOracleクライアント・ソフトウェアからの接続を受け入れます。
Oracle Database Express Edition Client (Oracle Database XE)
Oracle Database XEをインストールすると、Oracle Database XEも同じコンピュータにインストールされます。Oracle Database XEは、リモート・コンピュータに単独でインストールすることもできます。それは、次の場所から入手できます。
Instant Clientは、次の場所から入手できます。
http://www.oracle.com/technetwork/database/features/instant-client/index-100365.html
Oracle Database Enterprise EditionまたはStandard Edition (サポートされているすべてのリリースのOracle Database)のOracleクライアント・ソフトウェア
すべてのOracleクライアント・ソフトウェアにはOracle Netが含まれており、これは、あるコンピュータのクライアント・アプリケーションから別のコンピュータのデータベースへのネットワーク経由での接続を可能にするOracleネットワーク・ソフトウェアです。
接続文字列
リモートで接続するには、ユーザー名とパスワードだけではなく、完全なOracle Net接続文字列を指定する必要があります。接続文字列には、データベース・ユーザー名とパスワードに加えて、ホスト名またはホストIPアドレス、オプションのTCPポート番号、およびオプションのデータベース・サービス名が含まれます。これらの追加パラメータは、Oracle Netが正しいホスト・コンピュータを探してOracle Database XEに接続するために必要です。Oracle Net接続文字列の形式は次のとおりです。
username/password@[//]host[:port][/service_name]
パラメータの内容は次のとおりです。
//
はオプションです
host
は、Oracle Database XEが実行されているコンピュータのホスト名またはIPアドレスです
port
(オプション)は、Oracle NetリスナーがリスニングするTCPポート番号です。指定しない場合は、デフォルトのポート番号1521が使用されます。
service_name
(オプション)は、接続先のデータベース・サービスの名前です。Oracle Database XEのサービス名はXE
です。service_name
を省略した場合は、Oracle Database XE Clientによって、デフォルトのデータベース・サービス(インストール時にXE
として構成されます)に対するリクエストが追加されます。
注意: デフォルトのデータベース・サービスの概念は、Oracle Database XEでのみサポートされます。Oracle Database XE以外のOracleクライアント・ソフトウェアからリモートで接続する場合は、XE のサービス名を指定する必要があります。 |
たとえば、図3-2は、ユーザーがSQLコマンドラインを使用してリモートで接続し、connect
コマンドの接続文字列でユーザー名hr
、パスワードhr
、ホスト名dbhost.example.com
を指定している例を示しています。この接続文字列では、デフォルトのポート(1521
)でデフォルトのデータベース・サービス(XE
)に接続されます。
環境変数
Linuxからのリモート接続を確立する前に、環境変数を設定する必要があります。詳細は、「環境変数の設定」を参照してください。
リモート接続の例
次の例のSQLコマンドラインのconnect
コマンドでは、Oracle Database XEは、mydbserver.example.com
のホスト・コンピュータで実行されています。
例1 この例では、デフォルトのポート番号を使用して、Oracle Database XEからのリモート接続を開始します。
CONNECT system/mypassword@mydbserver.example.com
例2 この例では、デフォルト以外のポート番号(1522)を使用して、Oracle Database XEからのリモート接続を開始します。
CONNECT system/mypassword@mydbserver.example.com:1522
例3 この例では、デフォルトのポート番号を使用し、オプションのサービス名を指定して、リモート接続を開始します。
CONNECT system/mypassword@mydbserver.example.com/XE
SQLコマンドライン(SQL*Plus)およびその他のOracleユーティリティは、オペレーティング・システムの環境変数から構成情報を取得します。この項では、これらの環境変数の設定方法を説明し、次のトピックが含まれます。
Windowsプラットフォームでは、環境変数はWindowsレジストリに格納され、自動的に設定されます。データベース接続を開始する前に、環境変数に関する対応を行う必要はありません。
Linuxプラットフォームでは、ターミナル・セッションからSQLコマンドラインやその他のOracleユーティリティを実行する前に、そのセッションのためにいくつかの環境変数を設定する必要があります。環境変数を設定する手順は、ローカルで接続するか、Oracle Database XEからリモートで接続するかによって異なります。
ローカル接続の場合の環境変数の設定
ローカルで接続する際の環境変数を設定するには、ターミナル・セッションで、次のいずれかのコマンドを入力します。
Bourne、KornまたはBashシェルの場合:
source /usr/lib/oracle/xe/app/oracle/product/11.2.0/server/bin/oracle_env.sh
Cシェルの場合:
source /usr/lib/oracle/xe/app/oracle/product/11.2.0/server/bin/oracle_env.csh
詳細は、「Linuxの環境変数のリファレンス」を参照してください。
注意: 「K」メニュー(KDE)または「アプリケーション」メニュー(Gnome)からSQLコマンドラインを実行する前に、環境変数を設定する必要はありません。 |
リモート接続の場合の環境変数の設定
Oracle Database XEからリモートで接続する際の環境変数を設定するには、リモート・コンピュータのターミナル・セッションで、次のいずれかのコマンドを入力します。
Bourne、KornまたはBashシェルの場合:
source /usr/lib/oracle/xe/app/oracle/product/11.2.0/client/bin/oracle_env.sh
Cシェルの場合:
source /usr/lib/oracle/xe/app/oracle/product/11.2.0/client/bin/oracle_env.csh
詳細は、「Linuxの環境変数のリファレンス」を参照してください。
ローカルで接続するということは、SQLコマンドライン(SQL*Plus)とOracle Database XEが同じコンピュータで実行されることを意味します。SQLコマンドラインを使用してローカル接続を開始する方法には、次の2つの方法があります。
デスクトップから
ターミナル・セッション(Linux)またはコマンド・ウィンドウ(Windows)から
デスクトップからのSQLコマンドラインの起動
デスクトップからSQLコマンドラインを起動して、ローカルで接続する手順は、次のとおりです。
次の操作を1つ実行します。
Windowsの場合: 「スタート」をクリックし、「プログラム」(または「すべてのプログラム」)、「Oracle Database 11g Express Edition」の順にポイントし、「SQLコマンドラインの実行」を選択します。
Linux (Gnome)の場合: 「アプリケーション」メニューで、「Oracle Database 11g Express Edition」をポイントし、「SQLコマンドラインの実行」を選択します。
Linux (KDE)の場合: 「K」メニューのアイコンをクリックし、「Oracle Database 11g Express Edition」をポイントし、「SQLコマンドラインの実行」を選択します。
SQLコマンドラインのコマンド・ウィンドウが開きます。
SQLコマンドラインのプロンプトで、次のコマンドを入力します。
CONNECTusername
/password
たとえば、ユーザーHR
、パスワードPEOPLE
で接続するには、次のコマンドを入力します。
CONNECT HR/PEOPLE
ターミナル・セッションまたはコマンド・ウィンドウからのSQLコマンドラインの起動
ターミナル・セッションまたはコマンド・ウィンドウからSQLコマンドラインを起動して、ローカルで接続する手順は、次のとおりです。
まだ開いていない場合は、ターミナル・セッション(Linux)またはコマンド・ウィンドウ(Windows)を開きます。
(Linuxのみ) セッションに必要な環境変数をまだ設定していない場合は、「Linuxプラットフォームの環境変数の設定」の説明に従って、それらを設定します。
オペレーティング・システムのプロンプトで次のコマンドを入力します。
SQLPLUS /NOLOG
SQLコマンドラインのプロンプトで、次のコマンドを入力します。
CONNECTusername
/password
たとえば、ユーザーHR
、パスワードPEOPLE
で接続するには、次のコマンドを入力します。
CONNECT HR/PEOPLE
リモートで接続するということは、あるコンピュータ(リモート・コンピュータ)でSQLコマンドライン(SQL*Plus)を実行して、別のコンピュータ上のOracle Database XEへの接続を開始することを意味します。
Oracle Database XEを使用して、SQLコマンドラインからリモート接続を開始する手順は、次のとおりです。
リモート・コンピュータで、ターミナル・セッションを開始するか(Linux)、コマンドライン・ウィンドウを開きます(Windows)。
ホストの資格証明を要求された場合は、リモート・コンピュータにログインします。
(Linuxのみ) セッションに必要な環境変数をまだ設定していない場合は、「Linuxプラットフォームの環境変数の設定」の説明に従って、それらを設定します。
オペレーティング・システムのプロンプトで次のコマンドを入力します。
SQLPLUS /NOLOG
SQLコマンドラインのプロンプトで、CONNECT
コマンドを入力して接続文字列を指定します。
CONNECT username/password@[//]host[:port][/service_name]
接続文字列の詳細および例については、「リモート接続について」を参照してください。
この項では、次の2つのシナリオでLinuxの環境変数を設定するためのリファレンス情報を提供します。
ローカルでの接続
Oracle Database XEからのリモートでの接続。
表3-1に、これらの各シナリオで設定する必要がある環境変数を示します。表3-2に、環境変数の説明と必要な値を示します。
表3-1 Oracleユーティリティを使用して接続する場合に必要なLinuxの環境変数
接続タイプ | 必要な環境変数 |
---|---|
ローカル |
ORACLE_SID ORACLE_HOME PATH NLS_LANG LD_LIBRARY_PATH |
ORACLE_HOME PATH NLS_LANG LD_LIBRARY_PATH SQLPATH |
表3-2 Linuxの環境変数の説明および値
変数名 | 説明 | 必要な値 |
---|---|---|
OracleインスタンスID |
|
|
Oracleホーム・ディレクトリ |
ローカル接続の場合:
Oracle Database XEとのリモート接続の場合:
|
|
実行可能ファイルの検索パス。(このパスには、 |
Bourne、KornまたはBashシェルの場合: Cシェルの場合: |
|
ロケール(クライアント・アプリケーションおよびデータベースで使用される言語および地域、クライアント・アプリケーションで使用されるキャラクタ・セット) |
(任意の言語、地域およびキャラクタ・セット。詳細は、『Oracle Database Express Editionインストレーション・ガイドfor Linux x86-64』を参照してください。) デフォルトは、 |
|
共有ライブラリの検索パス。(このパスには、 |
|
|
SQLコマンドライン(SQL*Plus)で使用される |
|
例
次に、アメリカ合衆国のLinuxインストールでローカル接続に必要な環境変数を設定するBashシェル・コマンドを示します。
ORACLE_SID=XE;export ORACLE_SID ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/11.2.0/server;export ORACLE_HOME PATH=$ORACLE_HOME/bin:$PATH;export PATH NLS_LANG=AMERICAN_AMERICA.AL32UTF8;export NLS_LANG LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH
Oracle Database XEおよびOracle Database XEには、環境変数を簡単に設定するために使用可能な2つのシェル・スクリプトが付属しています。スクリプトがある場所は$ORACLE_HOME/bin
で、名前は次のとおりです。
oracle_env.sh
(Bourne、KornまたはBashシェル用)oracle_env.csh
(Cシェル用)新しいターミナル・セッションを開始(新しいシェルを起動)するたびに自動的に環境変数が設定されるように、ドット・ファイル内からこれらのスクリプトを起動できます。次のコマンドの例では、ホーム・ディレクトリに.cshrc
ファイルを追加できます。
source /usr/lib/oracle/xe/app/oracle/product/11.2.0/server/bin/oracle_env.csh