zoukankan      html  css  js  c++  java
  • 用PL/SQL远程连接Oracle服务器

    背景:本地未安装oracle数据库服务器,希望远程连接Oracle服务器

    测试环境:win7 64位系统

    1.下载精简客户端

    下载64位windows的instantclient-basic包,地址:http://www.oracle.com/technetwork/topics/winx64soft-089540.html,32位的需下载32位的客户端,将包解压存放到本地,我本机主目录是D:software_devplsqlOracleClientPackageinstantclient_11_2

    2.创建数据库连接的配置文件

    在客户端主目录下新建sqlnet.ora和tnsnames.ora两个文件
    sqlnet.ora文件写入:

    SQLNET.AUTHENTICATION_SERVICES= (NTS)
    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

    tnsnames.ora文件写入:

    #可配置多个本地实例。格式:
    #本地实例名 =
    #  (DESCRIPTION =
    #    (ADDRESS = (PROTOCOL = TCP)(HOST = 远程数据库IP地址)(PORT = 远程服务器端口号))
    #    (CONNECT_DATA =
    #      (SERVER = DEDICATED)
    #      (SERVICE_NAME = 远程数据库服务名)
    #    )
    #  )
    
    KOBRA_DEV_VPN=
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.109)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = comstar)
        )
      )
    
    KOBRA_DEV_VPN_2=
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.139)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = kobra)
        )
      ) 

    PS:不要出现本地实例名前面多空格,或者其他地方少写括号。否则连接时会报错:ORA-12154: TNS:could not resolve the connect identifier specified

    3. 配置windows的环境变量

    变量名:TNS_ADMIN  变量值:D:software_devplsqlOracleClientPackageinstantclient_11_2

    ---->截图来自win10

    PS:这里变量值即为instantclient在本地的主目录。如果不配置该变量,连接时会报错:ORA-12154: TNS:could not resolve the connect identifier specified

    4.安装并配置PL/SQL Developer

    (1)下载安装PL/SQL Developer工具

    (2)配置oracle的连接参数:打开PL/SQL,打开工具-->首选项-->连接,配置Oralce主目录和OCI库

    主目录:D:software_devplsqlOracleClientPackageinstantclient_11_2
    OCI库:D:software_devplsqlOracleClientPackageinstantclient_11_2oci.dll

    5.重新启动PL/SQL Developer

    填写用户名、密码、选择数据库,确定连接

    还可以用这种写法进行测试:

    5.解决乱码问题

    解决乱码问题需要关注的三点:
    (1)Oracle数据库内部的字符集
    (2)Oracle客户端应用所在环境的字符集
    (3)Oracle数据库所在服务器的系统中NLS_LANG变量里保存的字符集(最好与前两点保持一致)

    解决方法:

    步骤一:查询Oracle数据库所在服务器的系统中NLS_LANG变量里保存的字符集

    方式一:

    select * from v$nls_parameters;

    查询结果如下:

    方式二:

    select userenv('language') from dual;

    查询结果如下:

    上述方式都可查得:方式当前oracle服务器内部的字符集为 AMERICAN_AMERICA.AL32UTF8

    步骤二:配置环境变量

    配置oracle客户端所在环境的字符集,使其与oracle服务器内部字符集配置保持一致:

    变量名:NLS_LANG  变量值:AMERICAN_AMERICA.AL32UTF8

    步骤三:重启PL/SQL,进行测试

    参考文章:

    http://www.cnblogs.com/zhwl/p/3727565.html 不安装oracle客户端,用plsql连接oracle

    http://gang-chen.iteye.com/blog/2005546 PLSQL乱码

  • 相关阅读:
    Oracle基础知识整理
    linux下yum安装redis以及使用
    mybatis 学习四 源码分析 mybatis如何执行的一条sql
    mybatis 学习三 mapper xml 配置信息
    mybatis 学习二 conf xml 配置信息
    mybatis 学习一 总体概述
    oracle sql 语句 示例
    jdbc 新认识
    eclipse tomcat 无法加载导入的web项目,There are no resources that can be added or removed from the server. .
    一些常用算法(持续更新)
  • 原文地址:https://www.cnblogs.com/terryMe/p/6725120.html
Copyright © 2011-2022 走看看