サイトアイコン IT NEWS

SQLPlusでのOracleリモート接続とSQLファイルを実行する方法

sqlplus-oracle-sql-file

LinuxからSQLPlusOracleデータベースに対し、SQL文を入力して実行する方法は特に問題ないと思いますが、今回はSQLPlus外部からリモート接続し、かつ、SQL文が書かれたSQLファイルを実行する方法をご紹介します。


SQLPlusでOracleにリモート接続

基本的に2種類の方法があります。
前者はそのままデータベースへの接続情報を記述しますが、後者はtsnames.oraという設定ファイルを使って接続する方法です。

1. 設定ファイルを使用しない方法

設定ファイルを使用せずに直接リモート接続する方法は以下の通りです。

sqlplus [USER_NAME]/[PASSWORD]@[IP or HOST]:[PORT]/[SERVICE_NAME]

ちなみに、サーバー指定するのはIPアドレスでもホスト名でも構いません。

2. tnsnames.oraを利用した接続方法

次の方法は、まずtnsnames.oraという設定ファイルに以下のように接続情報を記載します。
ファイルの場所がわからなければググってください。もしくは作成してください。

[NET_SERVICE_NAME] = 
 ( DESCRIPTION= 
    ( ADDRESS=(PROTOCOL = [ex:TCP])(HOST = [IP or HOST])(PORT = [PORT])) 
    ( CONNECT_DATA= (SERVICE_NAME=[SERVICE_NAME])) 
 )

そして、以下のように記述すると前者より簡単に接続することができます。

sqlplus [USER_NAME]/[PASSWORD]@[NET_SERVICE_NAME]

こちらを参考にさせていただきました。

## 前提Oracleクライアントがインストールされていること### 基本```C:\ > sqlplus /@:/[Servic...
SQLPlusでOracleにリモート接続するメモ - Qiita - Qiita

SQLファイルを実行する方法

データベースに接続した後、単純にSQLファイルを実行するには、以下のように「@(アットマーク)」を付けてファイルパスを指定します。

SQL > @/path/to/sample.sql

また、接続と同時にSQLファイルを実行する場合も、SQLPlus~末尾半角スペースを空けて「@(アットマーク) + SQLファイルパス」を付けて上げれば実行できます。
1.の場合はこのようになります。

sqlplus [USER_NAME]/[PASSWORD]@[IP or HOST]:[PORT]/[SERVICE_NAME] @/path/to/sample.sql

2.の場合はこちらです。

sqlplus [USER_NAME]/[PASSWORD]@[NET_SERVICE_NAME] @/path/to/sample.sql

ちなみに、さらに後ろに半角スペース区切りで引数を渡すことができるようです。
こちらを参考にどうぞ。

SQL*Plus で 外部ファイル(.sql)を実行する
SQL*Plus で 外部ファイル(.sql)を実行する - Oracle - Project Group - www.projectgroup.info


モバイルバージョンを終了