0

この接続形式を使用して企業データベースに接続しようとしています

sqlplus user/pass@url:1521/dbname

そして、私は得ています

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

これは、Toad を使用して DB に接続し、データベースにクエリを実行するために使用する接続文字列と同じです。私は何を間違っていますか?

4

1 に答える 1

0

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既に存在している可能性もあります。

于 2013-05-01T16:07:05.447 に答える