数据库 Oracle12C
连接池 C3P0.0.9.5
在用c3p0连接oracle 12c版本的数据库时提示错误error: ORA-12505。最后看了https://community.oracle.com/thread/2566804?start=0&tstart=0文章后解决。
主要是两个原因:
1. oracle 12c 版本的jdbcUrl格式相对于以前的版本有点小变化。
jdbcUrl:jdbc:oracle:thin:@localhost:1521:test1
改为:
jdbcUrl:jdbc:oracle:thin:@localhost:1521/test1
2. c3p0 连接PDB时是按sid name连接的,所以要在tnsnames.ora里添加sid name。
更改 Z:\oracle\product\12.1.0\dbhome_1\network\admin\tnsnames.ora的tnsnames.ora 配置文件:
# tnsnames.ora Network Configuration File: D:\OracleDB\product\12.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
# 添加以下八行,更改为你自己相应的PDB的名称(例如:TEST1):
TEST1=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TEST1)
)
)