首页 新闻 会员 周边

ODP.NET出现“ORA-12541: TNS: 无监听程序”问题

0
悬赏园豆:10 [已解决问题] 解决于 2013-12-26 12:36

环境是VS2013+ODP.NET 11.2.0.1.0+Oracle 11g r2

using Oracle.DataAccess.Client;

namespace OracleDbTest
{
    class Program
    {
        private const string Connstring = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1527))" + "(CONNECT_DATA=(SID=orcl)));User Id=sakai;Password=sakai;";

        static void Main(string[] args)
        {
            using (OracleConnection conn = new OracleConnection(Connstring))
            {
                conn.Open();
                string sql = "SELECT * FROM SAKAI_ALIAS";

                OracleDataAdapter da = new OracleDataAdapter(sql,conn);
                DataTable dt = new DataTable();
                da.Fill(dt);

            }
        }

    }

运行时就报ORA-12541: TNS: 无监听程序

但是PL/SQL和SQLPLUS都能够连接

运行lsnrctl status显示已经启动

求解决。是不是我VS版本太高了?

飞鸟_Asuka的主页 飞鸟_Asuka | 菜鸟二级 | 园豆:209
提问于:2013-12-25 12:55
< >
分享
最佳答案
1

既然你的 PL/SQL 能连接,那就说明服务器配置和客户端配置没问题,我建议你找到 Oracle Client 安装目录下的配置文件,找到 tns name ,使用 tns name 或者整个字符串作为你的连接字符串。

收获园豆:10
Launcher | 高人七级 |园豆:45045 | 2013-12-26 10:36

有一个地方我不太明白

我的机器上既装了Oracle又装了ODP.NET,两个分别装在不同的地方。但是Oracle里也有ODP.NET的目录,这两个有没有关联?

另外,我的tnsnames.ora里面的内容是这样的

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

和我在问题中写的内容似乎是一样的啊

飞鸟_Asuka | 园豆:209 (菜鸟二级) | 2013-12-26 10:46

@飞鸟_Asuka: 连接字符串这样写:Data Source= orcl

Launcher | 园豆:45045 (高人七级) | 2013-12-26 10:55

@Launcher: 非常感谢!能成功连接了

但是为什么这样就可以呢?

飞鸟_Asuka | 园豆:209 (菜鸟二级) | 2013-12-26 11:21

@飞鸟_Asuka: orcl 是 tnsnames.ora 中配置的别名,连接 oralce 时的连接字符串有两种写法,一种就是使用别名(Data Source = orcl),另一种就是把 ORCL = 后面的字符串直接拷贝过来:

Data Source = (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

Launcher | 园豆:45045 (高人七级) | 2013-12-26 11:41

@Launcher: 哦,看了下之前的似乎是之前的写的有问题。

谢谢

飞鸟_Asuka | 园豆:209 (菜鸟二级) | 2013-12-26 12:36
其他回答(1)
0

根据tnsnames.ora修改

银杏叶儿 | 园豆:197 (初学一级) | 2015-06-12 21:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册