在oracle设置ODBC及出现oracle提示TNS:无监听程序的解决办法
设置ODBC
ODBC的全名是Open Database Connectivity(开放式数据库连接),是应用程序连接数据库的接口。
由于计算机的类型不同,从个人计算机到大型主机,都有自己处理数据的方式,ODBC则可以连接到相同或不相同的数据库管理系统,因此,ODBC可以给应用程序提供相同的存取数据库的接口,程序设计员在设计连接不同数据库时,只要处理与ODBC的连接就可以了,而不必针对不同的数据库设计完全不同的程序。
特别需要提醒的是,不同的数据库都有自己对应的ODBC驱动程序,在使用不同数据库的同时,务必设置正确的ODBC驱动程序。
就像在本节中,想要连接Oracle 10g数据库,就必须设置Oracle ODBC驱动程序,操作步骤如下:
(1)选择Start→Programs→Oracle-OraDb10g_home1→Configuration and Migration Tools→Microsoft ODBC Administrator
(2)打开ODBC Data Source Administrator,
(3)单击System DSN标签
(4)单击Add按钮
(5)向下拖动滚动条,找到Oracle in OraDb10g_home1选项,选择该选项
(6)单击Finish按钮,进入Oracle ODBC Driver Configuration对话框
Data Source Name:自定义,程序调用时将使用这个名称,请输入misdbdsn。
TNS Service Name:Oracle TNS服务名称,在创建数据库时,一般默认TNS服务名称与数据库名称相同,请输入MISDB,读者也可以自定义。
User ID:用户的账户名称,这里使用System账户来测试。
(7)单击Test Connection按钮,出现Oracle ODBC Driver Connect对话框,如图13-10所示。
Password:请输入安装时给System设置的密码,或自行修改后的密码。
如果出现oracle提示ERROR - ORA-12541: TNS:无监听程序,那么就依照下列步骤做,这是因为你的分配的地址不对。
查看\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora文件,用记事本打开,显示oracle值:
ORACLE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =自动分配的IP地址)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = oracle)
)
)
主机名输入localhost或127.0.0.1都会提示无监听程序。
由于自动分配的IP地址会有变动,所以将oralce值中的host改成本机的计算机名,保存修改后的tnsnames.ora。
再次新建数据库,出错问题解决。
# tnsnames.ora Network Configuration
File: G:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORACLE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =计算机名称)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = oracle)
)
)
计算机名称可以右击‘我的电脑’找到
(8)单击OK按钮
(9)单击OK按钮,回到Oracle ODBC Driver Configuration对话框
(10)单击OK按钮,回到ODBC Data Source Administrator的System DNS选项卡
(11)单击OK按钮,完成ODBC的设置。