ORA-12505, TNS:listener does not currently know of SID given in connect desc .
ORA-12505, TNS:listener does not currently know of SID given in connect desc .
这种情况一般因为数据库的实例名没有给,只给了数据库的服务名
什么是数据库实例名? 数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互用的是数据库实例名。实例名也被写入参数文件中,该参数为instance_name,在winnt平台中,实例名同时也被写入注册表。 数据库名和实例名可以相同也可以不同。 在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。
这种情况一般因为数据库的实例名没有给,只给了数据库的服务名
select INSTANCE_NAME from v$instance;
如何解决呢?
ORASESSION有个DataTypeMap属性
这里可以填上服务名
程序其实可以不用改,只用在服务名前加上sn=就可以了。
这是和用实例名唯一差别的地方