昨天遇到一个oracle导出数据的问题,上网查了一下解决办法,如下
首先下载PL/SQL(在文本中均简称我PL)和instanceclient.
注:instanceclient是属于oracle客户端里面的一个功能,自oracle 10g之后出现,和PL结合使用,只需直接下载解压缩后,配置一下环境变量即可顺利使用PL远程连接数据库。现将详细配置办法如下:
1、下载instanceclient和PL
http://download.youkuaiyun.com/tag/instantclient
http://www.pc6.com/softview/SoftView_66665.html#download
2、解压缩instanceclient
例:F:\instantclient_10_2
3、在该文件夹下添加两个文件
1)sqlnet.ora
文件内容为:
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
2)
文件内容为:
orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 115.24.161.31 )(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl )
)
)
注:下划线且斜体部分根据自己数据库情况更改
3、配置环境变量
变量名 变量值
TNS_ADMIN D:\STUDY\instantclient_10_2
注:这里变量值即为instantclient在本地的主目录;如果不配置该变量,
连接时会报错ORA-12154: TNS:could not resolve the connect identifier specified。
4、安装PL略
5、打开PL进行设置
打开PL/SQL,Tools-->Preferences,配置Connection的Oracle Home和OCI library,如下图所示:
ok后重新启动PL,测试连接成功
6、PL显示乱码,或者导出中文为问号(检查原因是数据本身就是问号),原因应该是字符集等编码方式不一致
查看字符集等编码方式语句:
select * from V$NLS_PARAMETERS
解决办法就是保持oracle服务器端和PL一致,主要是这两个参数
在windows中创建一个名为“NLS_LANG”的系统环境变量,设置其值为“SIMPLIFIED
CHINESE_CHINA.ZHS16GBK”,然后重新启动 pl/sql developer,这样检索出来的中文内容就不会是乱码了。
参考来源
http://gang-chen.iteye.com/blog/1990610
http://dw008.blog.51cto.com/2050259/934741