在我的ruby脚本中,我设置通过以下方式连接到oracle db: conn = OCI8.new(用户名,密码,数据库)
它在我自己的桌面(Ubuntu)上运行良好,但是,当我将它部署到实验室机器(Ubuntu VM)时,它有oracle连接错误。该机器具有所需的所有oracle驱动程序,因为我可以通过命令行sqlplus连接到它。我也回复$ ORACLE_HOME并且设置正确。 错误如下: env.c:257:在oci8lib.so中:ORA-12154:TNS:无法解析服务名称(OCIError)
当ORACLE_HOME设置不正确时,桌面上出现了同样的错误。一旦我做对了,它就开始起作用了。但是在这个实验室机器上,虽然我可以启动sqlplus w / o问题,但我无法通过ruby脚本连接。有什么建议吗?
答案 0 :(得分:2)
ORA-12154错误意味着在环境正在使用的tnsnames.ora文件中找不到OCI8.new调用中“database”参数的值。这可能是由于:
您说您可以在实验室机器上启动sqlplus而没有任何问题,我认为这意味着您可以在执行此操作时连接到感兴趣的数据库。如果是这种情况,那么运行Ruby脚本时出现的环境似乎必须有所不同。