Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试将oracle db与ruby连接时出错_Ruby_Database_Oracle - Fatal编程技术网

尝试将oracle db与ruby连接时出错

尝试将oracle db与ruby连接时出错,ruby,database,oracle,Ruby,Database,Oracle,我正在尝试通过ruby连接到oracle db,但我有一个错误: OCIRROR:ORA-12514:TNS:el listener没有实际的客户服务请求 oci8.c:659:in oci8lib_240.so 侦听器实际上不知道连接描述符中请求的服务 我将即时客户端12_2和odbc下载到w7 64b,将oci.dll下载到w7 32b,并将其放在ruby文件夹中。 () 我将db 11g release 2下载到w7 64b,然后运行安装程序。我从网络管理器配置侦听器。 () 我有sql

我正在尝试通过ruby连接到oracle db,但我有一个错误: OCIRROR:ORA-12514:TNS:el listener没有实际的客户服务请求 oci8.c:659:in oci8lib_240.so 侦听器实际上不知道连接描述符中请求的服务

  • 我将即时客户端12_2和odbc下载到w7 64b,将oci.dll下载到w7 32b,并将其放在ruby文件夹中。 ()
  • 我将db 11g release 2下载到w7 64b,然后运行安装程序。我从网络管理器配置侦听器。 ()
  • 我有sql开发人员和连接,querys工作正常
  • 我配置了tnsnames.ora、listener.ora和sqlnet.ora
特纳梅斯:

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
我配置了环境变量:

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
  • 在ruby中,我说:

    需要“dbi” 需要“oci8”

    //dbh=OCI8.new(用户、密码,'podvct.x.com:1521/podvct')

    dbh=DBI.connect(“DBI:OCI8:podvct.x.com:1521/podvct”,用户,密码)

  • 我检查了ruby和sqlplus之后的连接,错误是:

    dbh=DBI.connect(“DBI:OCI8:podvct.monsanto.com:1521/podvct”,用户,密码)

OCIRROR:ORA-12514:TNS:el listener没有实际的客户服务请求 oci8.c:659:in oci8lib_240.so
侦听器实际上不知道连接描述符中请求的服务。

我尝试使用all,响应如下所示:

dbh=DBI.connect(“DBI:OCI8:SERVICE\u PODVCT\u ORCL”,用户,通行证)

SERVICE_PODVCT_ORCL是tnsnames.ora中服务的名称


谢谢

我尝试使用all,结果是ruby语句如下:

dbh=DBI.connect(“DBI:OCI8:SERVICE\u PODVCT\u ORCL”,用户,通行证)

SERVICE_PODVCT_ORCL是tnsnames.ora中服务的名称


谢谢

数据库和侦听器是否正在运行?数据库是一个远程数据库,它正在服务器中运行,我的电脑中的侦听器也在运行。您确认了吗,服务器上的侦听器是否也在运行?我需要在两者中都有一个侦听器吗?服务器和我的电脑?我需要像在我的电脑中一样配置侦听器?我会确认的.是的。。服务器应该有侦听器,并且应该向上。数据库和侦听器是否正在运行?数据库是一个远程数据库,它正在服务器中运行,并且侦听器在我的电脑中运行。您确认了吗,如果服务器上的侦听器也在运行?我需要在两者中都有一个侦听器吗?服务器和我的电脑?我需要像在我的电脑中一样配置侦听器?我会确认的.是的。。服务器应该有侦听器,并且应该处于启动状态