【R言語】 RODBCパッケージを使ったSQLServer接続

■RODBCパッケージをインストール

しかし、RGuiのパッケージメニューからインストールしたほうが良い感じ(ヘルプなどがインストールされる)

> install.packages("RODBC")

■インストールされたかを確認する

> library()

※コンソールとは別にウィンドウが開き一覧が表示される

■RODBCを使うことを宣言

> library(RODBC)

ODBCデータソースを使う場合

> db=odbcConnect("SQLServerHOME")
> ds=sqlQuery(db,"select top 100 * from dbo.R_PackageList")
> ds

※データソースを作るにはコントロールパネル→システムとセキュリティ→管理ツールを選択
 ODBCデータソースをダブルクリックしてODBCデータソースアドミニストレーターを表示
 ユーザーDNSで追加してドライバーを選択(SQLServer)して完了を押す
 データソースの作成になるので任意のデータソース名と接続するSQLServerを選択(説明は省略可)

ODBCドライバーで直接接続する場合(既定のデータベース、Windows認証で接続)

> db<- odbcDriverConnect('driver={SQL Server};server=HOME;database=R;trusted_connection=true')
> db
RODBC Connection 3
Details:
  case=nochange
  DRIVER=SQL Server
  SERVER=HOME
  UID=owner
  Trusted_Connection=Yes
  WSID=HOME
  DATABASE=R
> ds=sqlQuery(db,"select top 100 * from dbo.R_PackageList")
> ds

ODBCドライバーで直接接続する場合(インスタンス名付きのデータベース、Windows認証で接続)

>  db<- odbcDriverConnect('driver={SQL Server};server=HOME\\MSSQLSERVER2017;database=KEN_ALL;trusted_connection=true')
> db
RODBC Connection 8
Details:
  case=nochange
  DRIVER=SQL Server
  SERVER=HOME\MSSQLSERVER2017
  UID=owner
  Trusted_Connection=Yes
  WSID=HOME
  DATABASE=KEN_ALL
> ds=sqlQuery(db,"select top 100 * from dbo.KEN_ALL")

ODBCドライバーで直接接続する場合(SQLServer認証)

> db<- odbcDriverConnect('driver={SQL Server};server=HOME\\MSSQLSERVER2017;database=KEN_ALL;UID=sa;PWD=パスワード')
> db
RODBC Connection 9
Details:
  case=nochange
  DRIVER=SQL Server
  SERVER=HOME\MSSQLSERVER2017
  UID=sa
  PWD=******
  WSID=HOME
  DATABASE=KEN_ALL

インスタンス付きサーバー名を指定する場合、\\で接続する必要がある(通常は\一つ)。
 これはR Consoleの"\"を表現する場合には"\\"にしなければならない規定がある
 ファイルパスの接続文字でも同様の事が言える
 C:\temp\test.xlsを指定する場合にはC:/temp/test.xlsとするかC:\\temp\\test.xlsとしなければならない

■その他AccessExcelに接続する場合

odbcConnectAccess(access.file, uid = "", pwd = "", ...)
odbcConnectAccess2007(access.file, uid = "", pwd = "", ...)
odbcConnectExcel(xls.file, readOnly = TRUE, ...)
odbcConnectExcel2007(xls.file, readOnly = TRUE, ...)

■パッケージのアンロード

> detach("package:RODBC")

■パッケージのアンインストール

> remove.pakages("RODBC")

※再インストールするにはRGuiを再起動する必要がある