LinuxからSQLPlusでOracleデータベースに対し、SQL文を入力して実行する方法は特に問題ないと思いますが、今回はSQLPlusで外部からリモート接続し、かつ、SQL文が書かれたSQLファイルを実行する方法をご紹介します。
目次
SQLPlusでOracleにリモート接続
基本的に2種類の方法があります。
前者はそのままデータベースへの接続情報を記述しますが、後者はtsnames.oraという設定ファイルを使って接続する方法です。
1. 設定ファイルを使用しない方法
設定ファイルを使用せずに直接リモート接続する方法は以下の通りです。
1 |
sqlplus [USER_NAME]/[PASSWORD]@[IP or HOST]:[PORT]/[SERVICE_NAME] |
ちなみに、サーバー指定するのはIPアドレスでもホスト名でも構いません。
2. tnsnames.oraを利用した接続方法
次の方法は、まずtnsnames.oraという設定ファイルに以下のように接続情報を記載します。
ファイルの場所がわからなければググってください。もしくは作成してください。
1 2 3 4 5 |
[NET_SERVICE_NAME] = ( DESCRIPTION= ( ADDRESS=(PROTOCOL = [ex:TCP])(HOST = [IP or HOST])(PORT = [PORT])) ( CONNECT_DATA= (SERVICE_NAME=[SERVICE_NAME])) ) |
そして、以下のように記述すると前者より簡単に接続することができます。
1 |
sqlplus [USER_NAME]/[PASSWORD]@[NET_SERVICE_NAME] |
こちらを参考にさせていただきました。
SQLPlusでOracleにリモート接続するメモ - Qiita
前提Oracleクライアントがインストールされていること基本C:\ > sqlplus [username]/[passowrd]@[IP Addr]:[Port Number]/[Servi…
SQLファイルを実行する方法
データベースに接続した後、単純にSQLファイルを実行するには、以下のように「@(アットマーク)」を付けてファイルパスを指定します。
1 |
SQL > @/path/to/sample.sql |
また、接続と同時にSQLファイルを実行する場合も、SQLPlus~の末尾に半角スペースを空けて「@(アットマーク) + SQLファイルパス」を付けて上げれば実行できます。
1.の場合はこのようになります。
1 |
sqlplus [USER_NAME]/[PASSWORD]@[IP or HOST]:[PORT]/[SERVICE_NAME] @/path/to/sample.sql |
2.の場合はこちらです。
1 |
sqlplus [USER_NAME]/[PASSWORD]@[NET_SERVICE_NAME] @/path/to/sample.sql |
ちなみに、さらに後ろに半角スペース区切りで引数を渡すことができるようです。
こちらを参考にどうぞ。
SQL*Plus で 外部ファイル(.sql)を実行する - Oracle - Project Group
SQL*Plus で 外部ファイル(.sql)を実行する
コメント