考虑JDBC和ODBC,Oracle/DB2客户端的差异。
一、可视化工具+开发环境配置:客户端配置(如何支持数据库客户端软件可视化操作)
1. 可能出现的错误
1)用PL/SQL连接虚拟机中的Oracle数据库,发现又报了“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误,请参考ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务。
3)32位软件/工具与64位工具/软件不兼容问题,这个是常识了,我遇到的问题是公司的一个项目经理给我做培训后扔给我一个64位的PL/SQL和一个32位的oracle11g .net驱动程序,我哪知道自己人也会坑自己人,搞了一天都没搞好,最后才发现是这个问题,所以版本务必要一一对应,避免不必要的麻烦。不过这个问题可能也是碰到问题最多的。
4)安装完Oracle客户端出现ORA-12560:TNS:协议适配器错误,这里是SQL Plus连接不上报的错误,在保证Oracle服务器TNSListenter和DervieceORCL等服务都正常开启且在远程客户端ODBC连接测试正常的情况下,远程客户端可能的原因比较多。
5)客户端软件和PL/SQL对应的正确版本(如都位64位软件)安装后,连接orcl正常,但是连接自己新建的数据库却报错误如图:
如果是Oracle服务器的某些服务没有打开,可以使用SQL Plus开启全部服务
SQL> conn / as sysdba
SQL> startup
如果是在客户端,则需要按照固定格式进行测试连接,如下图:
SQL> sqlplus /nolog
SQL> conn user/password@SID
sqlplus控制台格式形如 SQL> conn user/password@//机器IP地址:端口号/服务名 。
2. PL/SQL远程连接Oracle服务器
常规的方法就是安装Oracle客户端,安装PL/SQL对应版本,做一个简单的配置就可以使用了,具体使用请参考:PL/SQL Developer连接本地Oracle 11g 64位数据库。
3. Aqua Data Studio远程连接Oracle服务器
4. Toad远程连接Oracle服务器
这个是我使用C#开发时最早使用的连接工具了,记得2013年下半年在做一个军工项目的时候就是服务端配置好后,在远程客户端只用安装一个ODBC做个简单的配置就可以使用Toad了,现在不知道11g2R的Oracle有什么变化没,在网上找了些资料记录如下:AD连接ORACLE而不装ORACLE 客户端的方法
TOAD连接ORACLE而不装ORACLE 客户端的方法,原来连接ORACLE总是要装ORACLE客户端,挺麻烦得,一方面要带ORACLE得盘,另一方面,装这么大得东西也让人很不爽。ORACLE好像从10开始,对WINDOWS提供了instantclient,来解决上述问题。正巧遇到最近机器重装,所以去网上下了这个东东。
一开始发现还挺难配,经过一番周折,终于配出来了,一下是一些总结(instantclient好像不支持ORACLE 9以前得版本)
1)到ORACLE 下载instantclient,下载地址:http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html ,注意下载对应版本的, 并 解压缩到 F:\Programes\instantclient11下。(目前可以进入网址https://www.oracle.com/database/technologies/instant-client.html看到)
2)将ORACLE 中的 BIN,NETWORK,ocommon,oracore,plsql拷贝到该目录下
3)将实际需要使用的tnsnames.ora和sqlnet.ora两个配置文件拷贝到network/admin目录下
如果没有这两个文件,可以到ORACLE所在服务器上去获取,或者直接编辑network/admin/sample目录下得文件
4)系统变量中设置:(也可以写入注册表)
Path(在变量中加入) F:\Programes\instantclient11
LD_LIBRARY_PATH(该变量可能可以省略) F:\Programes\instantclient11
NLS_LANG(注意空格,这是设置语言,可以根据情况配置) SIMPLIFIED CHINESE_CHINA.ZHS16GBK
ORACLE_HOME F:\Programes\instantclient11
SQL_PATH F:\Programes\instantclient11
TNS_ADMIN F:\Programes\instantclient11\network\ADMIN
5)用TOAD连接数据库,OK。
二、基于C#编程的开发
1. C#连接数据库总共有六种方法,请参考:C# 连接 Oracle 的几种方式。我目前用的是C#使用Oracle.ManagedDataAccess.dll的方式,可以完全摆脱安装Oracle客户端。
2. oracle客户端中OCI OCCI JDBC ODBC 有何区别?它们是不同语言对数据访问的API,比如JDBC就是java访问oracle数据库链接,ODBC是MICROSOFT提出的数据库访问接口标准。Oracle ODBC 配置(不需安装oracle客户端),这个应该是Microsoft支持的ODBC连接数据库方式。