sqlFetch {RODBC}R Documentation

Reading Tables from ODBC Databases

Description

Read a table of an ODBC database into a data frame.

Usage

sqlFetch(channel, sqtable, ..., colnames = FALSE, rownames = TRUE)

sqlFetchMore(channel, ..., colnames = FALSE, rownames = TRUE)

Arguments

channel connection handle returned by odbcConnect.
sqtable a database table name accessible from the connected dsn. This should be either a character string or a character vector of length 1.
... additional arguments to be passed to sqlQuery or sqlGetResults. See Details.
colnames logical: retrieve column names from first row of table? (For use when sqlSave(colnames = TRUE) was used.)
rownames either logical or character. If logical, retrieve row names from the first column (rownames) in the table? If character, the column name to retrieve them.

Details

sqlFetch retrieves the the entire contents of the table sqtable. Rownames and column names are restored as indicated (assuming that they have been placed in the table by the corresponding arguments to sqlSave). sqlFetchMore will retrieve further results from the query (provided there has been no other ODBC query on that channel in the meantime).

It tries to cope with the peculiar way the Excel ODBC driver handles table names, and to quote Access table names which contain spaces.

Useful additional parameters to pass to sqlQuery or sqlGetResults include

max:
limit on the number of rows to fetch, with 0 (the default) indicating no limit.
nullstring:
character string to be used when reading SQL_NULL_DATA character items from the database: default NA.
na.strings:
character string(s) to be mapped to NA when reading character data: default "NA".
as.is:
as in sqlGetResults.
dec:
The character for the decimal place to be assumed when converting character columns to numeric.
rows_at_time:
Allow for multiple rows to be retrieved at once. Only works correctly on some drivers.

Value

A data frame on success, or a character or numeric error code (see sqlQuery).

Note

If the table name desired is not a valid SQL name (alphanumeric plus _), use sqlQuery with whatever quoting mechanism your DBMS vendor provides (e.g. [ ] on Microsoft products and backticks on recent versions of MySQL).

Author(s)

Michael Lapsley and Brian Ripley

See Also

sqlSave, sqlQuery, odbcConnect, odbcGetInfo

Examples

## Not run: 
channel <- odbcConnect("test")
sqlSave(channel, USArrests)
sqlFetch(channel, "USArrests") # get the lot
sqlFetch(channel, "USArrests", max=20)
sqlFetchMore(channel, max=20)
sqlFetchMore(channel) # get the rest
sqlDrop(channel, "USArrests") 
close(channel)
## End(Not run)

[Package RODBC version 1.1-9 Index]