我试图在我的Mac笔记本电脑(OS X 10.9.5)上的SQL Developer中创建一个TNS连接。
我收到此错误no ocijdbc11 in java.library.path
我用Google搜索并发现我需要
安装oracle的即时客户端。我在这里找到了实例客户端文件:
http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html
这些文件只是您需要下载并提取到某处的zip文件。 然后我找到了实际告诉你如何处理zip文件的说明:
https://docs.oracle.com/cd/E11882_01/install.112/e38228/inst_task.htm#BABHEBIG
指示说:
设置
DYLD_LIBRARY_PATH
和NLS_LANG
环境变量 到instantclient_11_2
目录的完整路径。例如, 如果您在/bin/oracle
中解压缩Instant Client zip文件 目录,然后将DYLD_LIBRARY_PATH
环境变量设置为/bin/oracle/instantclient_11_2
。
说明书没有告诉我的是如何永久设置环境变量以及如何使SQL工程师等GUI工具可以访问环境变量。
有没有人让SQL Developer使用instantclient?
答案 0 :(得分:8)
基于@Alex Poole的答案:在启用SIP时,在El Capitan中,此doesn't seem to work,因为DYLD_LIBRARY_PATH
环境变量未转移到bash ./sqldeveloper
环境变量{ {1}}开始(SQLDeveloper.app/Contents/MacOS/sqldeveloper.sh
的最后一行)。
解决方案:我没有编辑文件SQLDeveloper.app/Contents/MacOS/sqldeveloper.sh
,而是编辑了文件SQLDeveloper.app/Contents/Resources/sqldeveloper/sqldeveloper/bin/sqldeveloper
并在那里添加了export DYLD_LIBRARY_PATH=/path/to/instantclient
行。
#!/bin/bash
export DYLD_LIBRARY_PATH=/path/to/instantclient
#=============================================================================
# Launcher for Oracle SQL Developer
# Copyright (c) 2005, Oracle. All rights reserved.
#=============================================================================
...
答案 1 :(得分:3)
如果您喜欢编辑文件,可以在内部启动脚本中设置库路径。我通过Terminal.app和vim编辑了这个,转到:
cd <wherever SQL Developer was installed/unzipped>
cd SQLDeveloper.app/Contents/MacOS
cp -p sqldeveloper.sh sqldeveloper.sh.backup
chmod o+w sqldeveloper.sh
vim sqldeveloper.sh
默认情况下,文件受到保护,因此我将其更改为可写(并先进行备份,以防万一)。如果您跳过该步骤,使用vim,您可以使用:w!
保存它以保存它。
或者在Finder中找到SQLDeveloper应用程序,右键单击,然后选择“显示包内容”,然后深入查看目录 - &gt; MacOS,右键单击sqldeveloper.sh
文件并选择& #39;打开&#39;和你最喜欢的文本编辑器 - TextEdit会做。当文件被锁定时,系统会提示您在某些时候将其解锁 - 可能是打开或首次编辑,但TextEdit会询问您是否要在保存时将其解锁。
但是,您进入该文件,然后可以指定添加一行来设置/导出DYLD_LIBRARY_PATH
:
#!/bin/bash
# Next line added for TNS connections
export DYLD_LIBRARY_PATH=/path/to/instantclient
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
here="${0%/*}"
cd "${here}"
cd ../Resources/sqldeveloper/sqldeveloper/bin
bash ./sqldeveloper -clean >>/dev/null
...其中/path/to/instantclient
是您的解压缩目录;在上面引用的示例中,这将是/bin/oracle/instantclient_11_2
。另请注意,这需要是64位即时客户端;如果您尝试使用32位版本,它会抱怨错误的架构。
已保存修改后的文件,重新启动SQL Developer,您的TNS连接现在应该可以正常工作。如果您希望能够使用TNS别名,还可以设置/导出指向包含tnsnames.ora
文件的目录的TNS_ADMIN变量。