RubyでOracle DBに接続しようとしていますが、エラーが発生しました: OCIError:ORA-12514:ORA-12514:oci8.c:659:in oci8lib_240.so リスナーは、接続記述子で実際に要求されたサービスを認識しません。ルーブルでoracle dbに接続しようとしたときにエラーが発生しました
- インスタントクライアント12_2とodbcをw7 64bに、oci.dllをw7 32bにダウンロードしてrubyフォルダに入れました。 (http://www.oracle.com/technetwork/topics/winx64soft-089540.html)
- db 11gリリース2をw7 64bにダウンロードし、セットアップを実行しました。私はNET MANAGER以来リスナーを設定しています。 (http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html)
- 私はsql開発者を持っており、接続とクエリーは正常です。
SERVICE_PODVCT_ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = podvct.x.com)(PORT = 1521)) ) (CONNECT_DATA = (SID = PODVCT) (SERVICE_NAME = PODVCT) (SID = PODVCT) ) )
リスナー:
LISTENER_PODVCT_ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = podvct.x.com)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = PODVCT) (SID = PODVCT) ) ) sid_list_LISTENER_PODVCT_ORCL= (sid_list= (sid_desc= (oracle-home=C:\app\user\product\11.2.0\dbhome_1) (sid_name=PODVCT))) ADR_BASE_LISTENER_PODVCT_ORCL = C:\app\user
SQLNET:
AMES.TRACE_DIRECTORY = C:\app\user\product\11.2.0\dbhome_1\NETWORK\trace SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, HOSTNAME) NAMES.TRACE_FILE = names.trc NAMESCTL.TRACE_FILE = namesctl.trc NAMES.PREFERRED_SERVERS = (address_list = (address = (protocol = tcp)(host = podvct.x.com)(port = 1521)) ) NAMES.LOG_FILE = names.log NAMESCTL.TRACE_LEVEL = ADMIN NAMES.LOG_DIRECTORY = C:\app\user\product\11.2.0\dbhome_1\NETWORK\log NAMES.DEFAULT_DOMAIN = world NAMESCTL.TRACE_DIRECTORY = C:\app\user\product\11.2.0\dbhome_1\NETWORK\trace NAMES.TRACE_LEVEL = ADMIN ADR_BASE = C:\app\user
- 私は、tnsnames.ora、listener.oraおよびSQLNET.ORA
tnanamesを構成しました私configu赤の環境変数:ルビーで
PATH: ...;C:\Ruby24-x64\bin\oci.dll;C:\Oracle_odbc;%ORACLE_HOME%/network/bin;C:\app\PRIVE2\product\11.2.0\dbhome_1\bin;
ORACLE_HOME:C:\app\user\product\11.2.0\dbhome_1
ORACLE_SID:podvct
NLS_LANG: SPANISH_SPAIN.WE8MSWIN1252
TNS_ADMIN: C:\app\USER\product\11.2.0\dbhome_1\NETWORK\ADMIN
そして私は置く:
は 'OCI8'
// DBH = OCI8.new(ユーザー、パスワードを必要と 'DBI' が必要です、 'podvct.x.com:1521/PODVCT')
DBH = DBI.connect( "DBI:OCI8:podvct.x.com:1521/PODVCT"、ユーザー、パスワード)
私はルビー以来とSQLPLUS以来の接続をチェックし、エラーがある:
DBH = DBI.connect( "DBI:OCI8:podvct.monsanto.com:1521/PODVCT"、ユーザー、パスワード)
OCIError:ORA-12514:TNS:エルリスナーなしconoceのactualmenteエルSERVICIO solicitadoエン・エル・ディスクリプタ・デconexión oci8.c:659:oci8lib_240.so にリスナーが実際にある要求されたサービスを知りません接続記述子。
dbとリスナーのどちらが実行されていますか? – Ravi
dbはリモートdbであり、サーバー内で実行されており、リスナーは自分のPCにあります。 – user8609295
サーバー上のリスナーもアップしていれば確認しましたか? – Ravi