Learn R Programming

ROracle (version 1.1-11)

dbConnect-methods: Oracle DBMSへの接続オブジェクトの作成

Description

これらのメソッドは対応する汎用関数の直接的な実装です。

Usage

## S3 method for class 'OraDriver':
dbConnect(drv, username = "", password = "", dbname = "", prefetch = FALSE,
          bulk_read = 1000L, stmt_cache = 0L, external_credentials = FALSE,
          sysdba = FALSE, ...)
## S3 method for class 'ExtDriver':
dbConnect(drv, prefetch = FALSE, bulk_read = 1000L, stmt_cache = 0L,
          external_credentials = FALSE, sysdba = FALSE, ...)
## S3 method for class 'OraConnection':
dbDisconnect(conn, ...)

Arguments

drv
クラスOraDriverまたはExtDriverのオブジェクト。
conn
OraConnectionによって生成されるdbConnectオブジェクト。
username
ユーザー名を指定する文字列。
password
パスワードを指定する文字列。
dbname
接続識別子を指定する文字列(詳細は、 『Oracle Database Net Services管理者ガイド』の第8章 「ネーミング方法の構成」を参照してください)。これは、SQL*Plus接続文字列の @記号よりも後の部分と同じです。 Oracle Walletを使用してユーザー名とパスワードを格納する場合、 この文字列は、ウォレット・���ッピングの作成に使用される接続文字列と 同じである必要があります(詳細は、『Oracle Databaseセキュリテ
prefetch
TRUEまたはFALSEを示す論理値。TRUEに設定すると、ROracleは OCIプリフェッチ・バッファを使用して、サーバーから追加データを取得します。このため、 データをOCIからフェッチするための単一行バッファを割り当てることで、 RODBI/ROOCIで必要なメモリーが節約されます。プ���フェッチを使用するとすべての行で フェッチ・コールが生成されます。デフォルトでは、プリフェッチはFALSEで、サーバーからデータを 取得するための配列フェッチが使用されま
bulk_read
一度にフェッチする行数を示す正数値。デフォルト値は 1000Lです。プリフェッチ・オプションが選択されているとき、メモリーは プリフェッチ・バッファに割り当て���れ、OCIは一度にそれら多数の行をフェッチします。 プリフェッチが使用されないとき(デフォルト)、メモリーはRODBI/ROOCIの定義バッファ に割り当てられます。これを大きな値に設定すると、選択リストの列数 や列の型に基づいて割り当てられるメモリーが増加します。 文字列型の列では、NLS最大幅
stmt_cache
キャッシュする文の数を示す正数値。これにより、文を再び解析しなくても、 カーソルをすぐに使用することができます。 デフォルト値は0Lです。stmt_cache値が0Lよりも大きい場合、 prefetch値をTRUEに設定する必要があります。
external_credentials
TRUEまたはFALSEを示す論理値。TRUEに設定すると、ROracleは、 外部資格証明によって認証されたOCIセッションを接続で開始します。 デフォルト値はFALSEです。
sysdba
TRUEまたはFALSEを示す論理値。TRUEに設定すると、ROracleは、 SYSDBA権限のOCIセッションを接続で���始します。 デフォルト値はFALSEです。
...
現在使用されていません。

Value

  • dbConnectクラスがOraConnectionを拡張するオブジェクトDBIConnection。 このオブジェクトはデータベースでSQL問合せを実行するために使用されます。
  • dbDisconnect処理が成功したかどうかを示す論理値。

References

For the Oracle Database documentation see http://www.oracle.com/technetwork/indexes/documentation/index.html.

Details

\describe{ dbConnect{ この接続オブジェクトは、データベースで処理を実行するために使用されます。 prefetchがTRUEに設定されているときは、サーバーから追加データを取得するために、 OCIプリフェッチ・バッファの使用���許可されます。 bulk_read引数は、一度にフェッチする行数を示す整数値の設定 に使用されます。 stmt_cache引数は、文キャッシュ機能を有効または無効にするために使用 されます。値によって文キャッシュのサイズが指定されます。 external_credentials引数は、外部資格証明によって認証されたOCIセッション を接続で開始するために使用されま���。 sysdba引数は、SYSDBA権限のOCIセッションを接続で 開始するために使用されます。 ExtDriverドライバで接続を確立するとき、資格証明を指定する引数 は使用されません。このモードの接続は シングルトン・オブジェクトです。つまり、dbConnectへのすべてのコールが 同じ接続オブジェクトを返します。 } dbDisconnect{ この実装���、Rとデータベース・サーバーの間の接続を切断します。 接続オブジェクトによって使用されるすべてのリソースを解放します。また、 この接続オブジェクトに関連付けられているすべての結果セットを解放します。 } }

See Also

Oracle, dbConnect, dbSendQuery, dbGetQuery, fetch, dbCommit, dbGetInfo, dbReadTable.

Examples

Run this code
## create an Oracle Database instance and create one connection on the
    ## same machine.
    drv <- dbDriver("Oracle")

    ## use username/password authentication
    con <- dbConnect(drv, username = "scott", password = "tiger")

    ## run a SQL statement by creating first a resultSet object
    rs <- dbSendQuery(con, "select * from emp where deptno = 10")

    ## we now fetch records from the resultSet into a data.frame
    data <- fetch(rs)       ## extract all rows
    dim(data)
  ## create an Oracle Database instance and create one connection to a
    ## remote database using the SID in the connect string. 
    drv <- dbDriver("Oracle")

    ## refer to Oracle Database Net Services Administator's Guide for
    ## details on connect string specification.
    host <- "myhost"
    port <- 1521
    sid <- "mysid"
    connect.string <- paste(
      "(DESCRIPTION=",
      "(ADDRESS=(PROTOCOL=tcp)(HOST=", host, ")(PORT=", port, "))",
        "(CONNECT_DATA=(SID=", sid, ")))", sep = "")

    ## use username/password authentication
    con <- dbConnect(drv, username = "scott", password = "tiger",
                     dbname = connect.string)

    ## run a SQL statement by creating first a resultSet object
    rs <- dbSendQuery(con, "select * from emp where deptno = 10")

    ## we now fetch records from the resultSet into a data.frame
    data <- fetch(rs)       ## extract all rows
    dim(data)
  ## create an Oracle Database instance and create one connection to a
    ## remote database using the service name.
    drv <- dbDriver("Oracle")

    ## refer to Oracle Database Net Services Administator's Guide for
    ## details on connect string specification.

    host <- "myhost"
    port <- 1521
    svc <- "mydb.example.com"
    connect.string <- paste(
      "(DESCRIPTION=",
      "(ADDRESS=(PROTOCOL=tcp)(HOST=", host, ")(PORT=", port, "))",
      "(CONNECT_DATA=(SERVICE_NAME=", svc, ")))", sep = "")
    ## use username/password authentication
    con <- dbConnect(drv, username = "scott", password = "tiger",
                     dbname = connect.string)

    ## run a SQL statement by creating first a resultSet object
    rs <- dbSendQuery(con, "select * from emp where deptno = 10")

    ## we now fetch records from the resultSet into a data.frame
    data <- fetch(rs)       ## extract all rows
    dim(data)
  ## create an Oracle Database instance and create one connection.
    drv <- dbDriver("Oracle")

    ## use Oracle Wallet authentication
    con <- dbConnect(drv, username ="", password="", 
    dbname = "<wallet_connect_string>")

    ## run a SQL statement by creating first a resultSet object
    rs <- dbSendQuery(con, "select * from emp where deptno = 10")

    ## we now fetch records from the resultSet into a data.frame
    data <- fetch(rs)       ## extract all rows
    dim(data)
  ## create an Oracle Database instance and create one connection.
    drv <- dbDriver("Oracle")

    ## connect to a TimesTen IMDB instance using the easy connect 
    ## naming method where SampleDb is a direct driver TimesTen DSN
    con <- dbConnect(drv, username ="scott", password="tiger", 
                     dbname = "localhost/SampleDb:timesten_direct")

    ## run a SQL statement by creating first a resultSet object
    rs <- dbSendQuery(con, "select * from dual")

    ## we now fetch records from the resultSet into a data.frame
    data <- fetch(rs)       ## extract all rows
    dim(data)
  ## connect to an extproc (this assumes that the driver has already
    ## been initialized in the embedded R code by passing an external
    ## pointer representing the extproc context)
    con <- dbConnect(Extproc())

    ## run a SQL statement by creating first a resultSet object
    rs <- dbSendQuery(con, "select * from dual")

    ## we now fetch records from the resultSet into a data.frame
    data <- fetch(rs)       ## extract all rows
    dim(data)
  ## create an Oracle Database instance and create one connection.
    drv <- dbDriver("Oracle")

    ## create connection with SYSDBA privileges
    con <- dbConnect(drv, username ="scott", password="tiger",
                     sysdba = TRUE)

    ## run a SQL statement by creating first a resultSet object
    rs <- dbSendQuery(con, "select * from emp where deptno = 10")

    ## we now fetch records from the resultSet into a data.frame
    data <- fetch(rs)       ## extract all rows
    dim(data)
  ## create an Oracle Database instance and create one connection.
    drv <- dbDriver("Oracle")
    
    ## Use OS authentication as an example of external authentication
    ## Make sure that databse user exist to allow an OS authentication

    ## create connection authenticated with external credentials 
    con <- dbConnect(drv, username ="", password="",
                     external_credentials = TRUE)
    
    ## Above dbConnect() used OS credentials to connect with database.

    ## run a SQL statement by creating first a resultSet object
    rs <- dbSendQuery(con, "select * from emp where deptno = 10")

    ## we now fetch records from the resultSet into a data.frame
    data <- fetch(rs)       ## extract all rows
    dim(data)

Run the code above in your browser using DataLab