主要原因:
1可能是serverxml文件的DataSource配置出错。
(1)如果用到的是本机上的数据,本地数据源里的部分配置为: username="pcisv62" password="11" url="jdbc:oracle:thin:@localhost:1521:orcl"
(2)如果用到的是服务器上的数据,则数据源里的部分配置为: username="pcisv62" password="11" url="jdbc:oracle:thin:@dbserver:1521:corev6"
(dbserver为服务器的名字,corev6为服务器上Oracle的SID)
2可能是oracle的tnsnamesora文件配置出错。
oracle的安装目录E:\oracle\ora92\network\admin下的tnsnamesora:
本地配置:
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 主机名)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
或服务器配置:
COREV6_DBSERVER =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
)
(CONNECT_DATA =
(SID = COREV6)
(SERVER = DEDICATED)
)
)1oracle sql developer和你数据库服务器是在同一台机器么?如果是,主机名上写localhost就是正确的,如果不是,请填写数据库服务器的ip地址或者是能够解析的主机名
2你安装的数据库的名字是app吗?
在数据库服务器的命令行上执行语句看一下监听:lsnrctl status
有一段这样的
Service "XXXX" has 1 instance(s)
Instance "YYYY", status READY, has 1 handler(s) for this service
其中XXXX是你实例注册到监听上的服务,同一个实例可以注册有多个服务,所有远程客户端都要通过监听提供的服务去连接数据库
YYYY就是数据库对应的实例名了,它注册到了监听,提供的服务名是XXXX,大多数情况下,XXXX和YYYY是相同的
在登录界面上,如果你选择在sid上填写,就要写YYYY,还可以在“服务名”上填写,那就要写XXXX了,前提是你的监听要启动
如果还不行,把lsnrctl status的全部输出结果贴上来再分析问题
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)