2

OS X Mavericksへの RODBC/ROracle パッケージのインストールのフォローアップ...

まず、@joran から提供された回答を使用して、ROracle を Mac OS 10.10.3 (Yosemite) にインストールしました。さらに、スタートアップ plist ファイルを使用して DYLD_LIBRARY_PATH を設定すると、 を実行でき、正常にlibrary(ROracle)読み込まれます。ただし、tnsnames.ora ファイルを使用してデータベースに接続できません。TNS_ADMIN 変数を .Renviron ファイルに追加しました。これを RStudio が取得しているようです。

> Sys.getenv("TNS_ADMIN")
[1] "opt/oracle/instantclient_11_2/network/admin"

たとえば、次を実行すると

con <- dbConnect(drv = dbDriver("Oracle"), dbname = "db", username = "user", password = "pw")

、エラーが発生します

Error in .oci.Connect(.oci.drv(), username = username, password = password,  : 
  ORA-12154: TNS:could not resolve the connect identifier specified

さらに、TNS_ADMIN 環境変数も .bash_profile に追加しましたが、それは役に立ちませんでした。

注1:私はすでにtnsnames.oraファイルを使用してSQL Developerでデータベースに接続しているため、問題はファイルの内容の外部にあると確信しています。

注2:実際、ROracleを使用して次のようなものに接続できます。

# see example at http://www.oralytics.com/2015/05/loading-json-data-into-oracle-using.html
host <- "localhost"
port <- 1521
service <- "pdb12c"
drv <- dbDriver("Oracle")

connect.string <- paste(

"(DESCRIPTION=",

"(ADDRESS=(PROTOCOL=tcp)(HOST=", host, ")(PORT=", port, "))",

"(CONNECT_DATA=(SERVICE_NAME=", service, ")))", sep = "")

con <- dbConnect(drv, username = "dmuser", password = "dmuser", dbname = connect.string)

私は自分の tnsnames.ora ファイルを再確認しましたが、それは connect.string とまったく同じ形式であるためSys.getenv("TNS_ADMIN")、正しいパスが得られたとしても、RStudio によって実際に表示されていないと考えています。または、Mac の dbname 引数で必要な名前が Windows とは異なる可能性があります。

どんな助けでも大歓迎です!ありがとう!

4

2 に答える 2

0

Yosemite に環境変数を追加して RStudio からアクセスできるようにするための多くの推奨事項をオンラインで見てきました。少なくともこれまでのところ、私にとって完全に機能した唯一の方法は、すべての環境変数を plist ファイルに追加することです。必要な数の変数を追加できます。これについては @MortimorGoro の「Setting environment variables via launchd.conf は OS X Yosemite/El Capitan/macOS Sierra では機能しなくなりましたか? 」で説明されています。.

ここでの私の解決策は、 TNS_ADMIN を plist に追加することでした!

于 2015-08-10T11:22:54.993 に答える