LinuxからSQLPlusでOracleデータベースに対し、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 |
- Original:https://minory.org/sqlplus-oracle-sql-file.html
- Source:Minory
- Author:管理者