【问题标题】:How to acess locally installed Oracle 11 g throught PL/SQL Developer 9如何通过 PL/SQL Developer 9 访问本地安装的 Oracle 11g
【发布时间】:2013-09-11 09:58:10
【问题描述】:

我需要使用 PL/SQL developer 在 PL SQL 中进行开发,但我不知道如何让 oracle 11g 和 pl/sql developer 在同一台机器上工作,因为 pl/sql developer 需要安装 32 位 oracle 客户端当我们在本地机器上工作时,oracle 不需要客户端。 这就是我所做的:

1) 我在驱动器 d:\ 上安装了 oracle 11g 64 位 Enterprise 2)然后我在驱动器c上安装了32位oracle客户端:(pl/sql开发人员只能使用32位版本的oci.dll) 3) 在我转到 client_home%->Network->Admin 文件夹并更正 tnsname.ora 文件并在那里写入我的连接设置后,该设置是从我的 oracle 11 g home_dir..tnsnames.ora 复制的

    MyOracle =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = orcl)
)

在我在 c:\plsqldev\ 中安装 PL/SQL developer 并重新启动我的机器之后。

所以现在我可以使用位于我的 oracle 数据库目录中的 sql*plus 连接到我的数据库,但是当我尝试使用我的客户端 sql*plus 连接到我的 oracle 时,它​​在我尝试使用 pl/ 连接时显示 tns 协议错误sql developer 它说无法解析指定的连接标识符。我该怎么办?你能帮帮我吗

添加: 我从 NAMES.DIRECTORY_PATH 中删除了 TNSNAMES 参数(在服务器和客户端 sqlnet.ora 文件中),现在当我登录时它说:ora-12154 tns 无法解析指定的连接标识符,但是当我尝试时它仍然成功连接到数据库连接 SERVER - s sql*plus。

这是我的配置文件:

**servers listener.ora **

        SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = D:\app\Light\product\11.2.0\dbhome_1)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Light\product\11.2.0\dbhome_1\bin\oraclr11.dll")
        )
      )

    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        )
      )
ADR_BASE_LISTENER = D:\app\Light

服务器 sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES= (NONE)

NAMES.DIRECTORY_PATH= (HOSTNAME)

服务器 tnsname.ora

 LISTENER_ORCL =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


    ORACLR_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
        (CONNECT_DATA =
          (SID = CLRExtProc)
          (PRESENTATION = RO)
        )
      )

    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )              

客户端 sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES= (NONE)

NAMES.DIRECTORY_PATH= (HOSTNAME)

客户 tnsnames.ora

    ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

添加: 是的!))最后我找到了解决方案::) 我们需要使用服务器的配置文件而不是客户端之一 - 但 oci.dll(32bit) 必须从客户端目录中获取。我将描述基本步骤 - 我如何让 pl/sql developer 10.0.2 与本地安装的 Oracle 11.2 x64 一起工作:

1)首先我们需要安装Oracle(我安装到d:\app)

2)然后我们需要下载并安装oracle instant客户端(我发现即时客户端中没有任何配置文件(甚至没有network->admin目录),只需要dll之类的oci.dll 等。注意:我第一次选择“管理员”,里面有自己的配置文件,似乎只有远程访问 Oracle 才需要这种客户端)。我将我的即时客户端安装(解压缩)到 c:\app\ ;

3) 打开 PL/SQL developer ,进入 tools->preferences->connection 并将“Oracle Home”文件设置为您的即时客户端的主目录(我放的是 c:\app),但通常它已经存在在下拉列表中,我们只需单击下拉列表并选择 OraClient11g_home1_32bit ,这样我就设置了 oci 库路径(从下拉列表中选择)。点击应用退出pl/sql developer;

4) 现在我们需要创建两个环境变量(第一个将显示带有连接配置的文件夹路径,第二个是语言(如果我不正确请纠正我))->

  • TNS_ADMIN = %SERVER_HOME%\NETWORK\ADMIN\(我输入了 D:\app\Light\product\11.2.0\dbhome_1\NETWORK\ADMIN)

  • TNS_LANG = AMERICAN_CIS.CL8MSWIN1251

5) 重启(可选)然后启动 pl/sql developer - 必须有三个连接别名,我选择了 orcl,输入了我的登录名、密码并点击 OK,一切正常)));

感谢所有回答此主题的人,希望它对某人有所帮助

【问题讨论】:

  • Just install Oracle 32bit client 在同一台机器上并将 PL/SQL Developer 指向它的 %ORACLE_HOME%。
  • 谢谢您,ThinkJet 但我已经在我的机器上安装了 32 位客户端,并指出 pl/sql 开发人员我的客户端的主路径(工具->首选项->连接->Oracle Home=c:\ Oracle_client_home 并设置 OCI library=C:\app\product\11.2.0\client_1\bin\oci.dll)。我不知道该怎么办:(
  • TNS 无法解析指定的连接标识符 - 这是我在尝试连接到我的数据库时遇到的错误
  • 尝试更改与tnsnames.ora位于同一目录的sqlnet.ora文件:设置SQLNET.AUTHENTICATION_SERVICES = (NONE)NAMES.DIRECTORY_PATH= (TNSNAMES, HOSTNAME)
  • 我照你说的做了。现在,当我登录时,它会停留 10 秒,然后发出警报:“发生连接超时”,然后登录窗口关闭。

标签: oracle plsqldeveloper


【解决方案1】:

检查 tns 文件中的端口名称,它应该是 1521,其中 XE 是我的本地数据库名称 像这样 E = (描述= (ADDRESS = (PROTOCOL = TCP)(HOST = Shantu)(PORT = 1521)) (连接数据 = (服务器 = 专用) (SERVICE_NAME = XE) )

)

EXTPROC_CONNECTION_DATA = (描述= (地址列表 = (地址 =(协议 = IPC)(密钥 = EXTPROC1)) ) (连接数据 = (SID = PLSExtProc) (演示文稿 = RO) ) )

ORACLR_CONNECTION_DATA = (描述= (地址列表 = (地址 =(协议 = IPC)(密钥 = EXTPROC1)) ) (连接数据 = (SID = CLRExtProc) (演示文稿 = RO) ) )

【讨论】:

    猜你喜欢
    • 2018-04-19
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 2015-12-10
    • 2015-07-01
    • 2021-09-11
    相关资源
    最近更新 更多