この接続形式を使用して企業データベースに接続しようとしています
sqlplus user/pass@url:1521/dbname
そして、私は得ています
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
これは、Toad を使用して DB に接続し、データベースにクエリを実行するために使用する接続文字列と同じです。私は何を間違っていますか?
Easy Connect 形式は、SID ではなく、サービス名のみを受け入れます。ドキュメントから:
この命名方法は、データベースへのすぐに使える TCP/IP 接続を提供します。これは、クライアントがデータベースのホスト名に加えてオプションのポートとサービス名を使用してデータベース サーバーに接続できるようにすることで、ホスト ネーミング メソッドの機能を拡張します。
CONNECT username@[//]host[:port][/[service_name][:server]][/instance_name]] Enter password: password
接続識別子は、次の接続記述子に変換されます。
(DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=port)) (CONNECT_DATA= (SERVICE_NAME=service_name) (SERVER=server) (INSTANCE_NAME=instance_name)))
最初の試行で SID を表している場合dbname
は、代わりにサービス名を見つける必要があります。lsnrctl services
サーバー上から、またはselect value from v$parameter where name = 'service_names'
(許可がある場合)、または SQL*Plus から取得できますが、SQL*Plusshow parameter service_names
に接続できない場合、それは実際には役に立ちません... Toad が使用している場合TNS エイリアスの場合は、tnsnames.ora
既に存在している可能性もあります。