【发布时间】: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