Unix環境で以下のコマンドを使用してOracleデータベースに接続しています。
sqlplus test/test@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.com )(PORT=1521)))(CONNECT_DATA=(SID=mysid))'
しかし、私は以下のエラーになっています:
Use SQL*Plus to execute SQL, PL/SQL and SQL*Plus statements.
Usage 1: sqlplus -H | -V
-H Displays the SQL*Plus version and the
usage help.
-V Displays the SQL*Plus version.
Usage 2: sqlplus [ [<option>] [{logon | /nolog}] [<start>] ]
<option> is: [-C <version>] [-L] [-M "<options>"] [-R <level>] [-S]
コマンドを使用する際に私がミスをしているところを助けてください。
これを試して: sqlplus USER/PW@//hostname:1521/SID
sqlplus username/password @ database
例えば:
sqlplus hr/hr @ orcl
UNIXユーザーからOracle Databaseに接続するさまざまな方法は次のとおりです。
[Oracle@OLE1 ~]$ sqlplus scott/tiger
[Oracle@OLE1 ~]$ sqlplus scott/tiger@orcl
[Oracle@OLE1 ~]$ sqlplus scott/[email protected]:1521/orcl
[Oracle@OLE1 ~]$ sqlplus scott/tiger@//192.168.244.128:1521/orcl
[Oracle@OLE1 ~]$ sqlplus "scott/tiger@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=ole1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))"
リンクの説明を参照してください: https://stackoverflow.com/a/45064809/6332029
ありがとう!
簡単な方法(XEを使用):
1)。 tnsnames.oraを構成します
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host = Host.DOMAIN.COM)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
Host.DOMAIN.COMをIPアドレスに置き換えることができます。TCPポートはデフォルトで1521(確認)で、この構成の名前はXEです
2)。 sqlplusという名前のアプリの使用:
sqlplus SYSTEM@XE
SYSTEMは承認されたユーザーに置き換えられ、プロンプトが表示されたらパスワードを入力する必要があります
3)。一部のブロックされたTCPポートの可能性についてはファイアウォールで確認し、表示された場合は修正してください
tnsping xe --if you have installed express edition
tnsping orcl --or if you have installed enterprise or standard edition then try to run
--if you get a response with your description then you will write the below command
sqlplus --this will Prompt for user
hr --user that you have created or use system
password --inputted at the time of user creation for hr, or put the password given at the time of setup for system user
hope this will connect if db run at your localhost.
--if db Host in a remote Host then you must use tns name for our example orcl or xe
try this to connect remote
hr/pass...@orcl or hr/pass...@xe --based on what edition you have installed
それはこのようなものでしょう
sqlplus -s /nolog <<-!
connect ${Oracle_UID}/${Oracle_PWD}@${Oracle_DB};
whenever sqlerror exit sql.sqlcode;
set pagesize 0;
set linesize 150;
spool <query_output.dat> APPEND
@$<input_query.dat>
spool off;
exit;
!
ここに
Oracle_UID=<user name>
Oracle_PWD=<password>
Oracle_DB=//<Host>:<port>/<DB name>
David Aldridgeが説明したように、括弧はsqlplusコマンドの直後から開始する必要があるため、次のようになります。
sqlplus 'test/test@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.com )(PORT=1521)))(CONNECT_DATA=(SID=mysid))'
oracleデータベースに接続する場合
開始したら、Oracleデータベースにアクセスできるようになります。別のユーザーに接続する場合は、connユーザー名/パスワードを書くことができます。 conn scott/tiger;接続されていると表示されます........