oracle连接

oracle装在虚拟机里边,用JDBC连接数据库写url的时候不知道数据库名是什么,去init.ora里一看49行db_name='ORCL',以为这就是数据库名,连接的时候报错:Exception in thread "main" java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
192.168.0.50:1521:orcl

然后网上查报listener does not currently know of SID given in connect descriptor的原因,说监听出毛病的较多,其中有个只这样改的# listener.ora Network Configuration File: e:\oracle\product\10.2.0\db_1\network\admin\listener.ora 
# Generated by Oracle configuration tools. 
SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (SID_NAME = PLSExtProc) 
      (ORACLE_HOME = e:\oracle\product\10.2.0\db_1) 
      (PROGRAM = extproc) 
    ) 
    (SID_DESC = 
      (GLOBAL_DBNAME = oracle
      (ORACLE_HOME = e:\oracle\product\10.2.0\db_1) 
      (SID_NAME = oracle
    ) 
  ) 
LISTENER = 
  (DESCRIPTION_LIST = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
  ) 

结果还是报这个错.接着查到这句-->oracle配置文件:tnsnames.ora、listener.ora 里面写明了远程连接的实例名和端口号,也就是SERVICE_NAME。
实际上还有另外一种查看方式,那就是用SQL语句查询。用管理员身份system登陆后输入“show parameter service_name;”命令便可查看出来。

tnsnames.ora中

MAX1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = mx7vm)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = max1)
    )
  )

原来数据库对象的名字是max1....

 ok 测试结果:oracle.jdbc.driver.T4CConnection@64f6cd 成功 也许这就是花1个多小时的乐趣

其中他到某位网友这句话,最近其实深有感触啊--->jdbc:oracle:thin:@localhost:1521:orcl"; @ 后面是主机地址。1521是端口号。这个端口号你在安装的时候应该记住。orcl是oracle的简写。也就是数据库名称。你下了oracle,在它的文档里有它的链接方式。你应该在那里面去查。这才是最好的使用新东西。以后工作了也是这样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值