ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
结果问了DBA是JDBC链接串配的有问题。因为生产环境的Oracle做了高可用多节点的方式部署,所以JDBC连接串不能使用简单的IP形式,而是要使用TNS连接多节点的Oracle。下面是有4个ip和2个服务名的链接串模板。这个具体需要DBA提供,要把这一大串东西放到jdbc:oracle:thin:@
后面。
(DESCRIPTION_LIST=(LOAD_BALANCE=ON)(FAILOVER=ON)
(DESCRIPTION=(ENABLE=BROKEN)(CONNECT_TIMEOUT=3)(RETRY_COUNT=2)
(ADDRESS_LIST=(LOAD_BALANCE=ON)(FAILOVER=ON)
(ADDRESS=(PROTOCOL=TCP)(HOST=IP1)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=IP2)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=SN1))
)
(DESCRIPTION=(ENABLE=BROKEN)(CONNECT_TIMEOUT=3)(RETRY_COUNT=2)
(ADDRESS_LIST=(LOAD_BALANCE=ON)(FAILOVER=ON)
(ADDRESS=(PROTOCOL=TCP)(HOST=IP3)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=IP4)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=SN2))
)
)
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
换上TNS后重启应用,立马报了ORA-12514。这个就比较好解决了,就是连接串中的数据库服务找不到。这时就检查一下,数据库是不是可以使用其他工具访问,是不是挂了,如果没有就一定是连接串写错了。当时就是项目中配置少了一个)
,把它加上后大功告成。
ORA-00904: "xx": invalid identifier