I am looking for an R command to list the available databases in a PostgreSQL server. I am using RPostgreSQL package in R.
I know how to connect to the server but the only thing I need to know is how to list the names of available databases.
Once you're connected to the server you can use this query:
dbGetQuery(con, "SELECT datname FROM pg_database WHERE datistemplate = FALSE")
con is the name of your connection.
Related
Can anyone provide the connection string for connecting to Snowflake through RODBC:: odbcconnect in R?
Thanks in advance!
I'm moving from Teradata to Snowflake. And I have a lot of functions in my code which works only with an RODBC connection, but I'm only finding DBI connections to Snowflake on the internet.
Based on your question I assume that you have already installed the Snowflake ODBC driver and created a DSN following the Snowflake documentation appropriate for your OS and you have installed RODBC package working with other ODBC DSNs in your system.
Then you can connect to Snowflake as follows:
library(RODBC)
ch <- odbcConnect("DSN_NAME", uid = "USERNAME", pwd = "PASSWORD")
#test query to test the connection by printing the current timestamp
sqlQuery(ch, paste('SELECT CURRENT_TIMESTAMP()'))
I'm struggling to connect my shiny application to one of the database we use in our company. I've succesfully connected to Azure / Mongo / SQL Server databases but now I've got a SAP SQL Anywhere 17 database to connect to.
Not surprisingly there's no specific connection to that database provided in the R Drivers (https://www.rstudio.com/products/drivers/).
Now I can solve this in two ways I believe, our IT department is convinced that a generic ODBC connection should work, or I have to get the specific SQL Anywhere drivers installed on my shiny app somehow.
For both solutions I can't find much online. If I search for generic ODBC connection the recommendations go to FreeTDS which is in the RODBC package, which then might not work together with Pool (according to what I've read).
Searching how to install specific drivers on a shiny application is also not bringing me much.
Try using
options(java.parameters="-Xmx8g")
library(RJDBC)
drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver", "drivers/jdbc/mssql-jdbc-8.4.1.jre8.jar", identifier.quote="`")
processingStart = Sys.time()
conn <- dbConnect(drv,
"jdbc:sqlserver://SERVER_NAME;databaseName=DATABASE_NAME",
user = "USER_NAME",
"PASSWORD"
)
I'm trying to connect to an Azure SQL Server (12.00.1900) from R on a Mac, using Microsoft's unixodbc SQL Server drivers (17).
I get a connection, but instead of seeing the 12 or so tables that live in the database, dbListTables returns 442 tables, all with nonsensical names, beginning with 'Csoe', 'Ote', and ending in 'xlshm_idad'. Instead of seeing the single schema that lives in the database, I see cin_1mro__e, IFRAINSHM, and s, none of which have any tables in them.
Note that when I use an ordinary SQL visualization app, that doesn't use the MS drivers, I'm able to see the tables and their content properly.
In addition, the RSQLServer package gets a working connection and sees the tables correctly, but isn't compatible with dplyr semantics.
Can anyone help or advise? I've looked for third party SQL Server unixodbc drivers for Mac, and I can't find any.
Until I see more info from OP, I'll leave as my answer the general recommendation to use R's odbc package. Assuming the correct drivers are installed, connection is configured correctly in odbc.ini, and assuming trusted_connection=yes is used in the same, then connecting from R is as simple as:
library(odbc)
dbConn <- dbConnect(odbc(), dsn = "myDSN")
if trusted connection is not on then you just need to pass uid and pwd arguments.
Also, it may be the case OP that you did not install freeTDS, so try (replace with equivalent for package manager you're using):
brew install freetds --with-unixodbc
This gives you the libtdsodbc.so driver. Make sure the DSN points to this.
This is a follow up question to this thread.
Writing data from an R data-set into Redshift
How do I set up the ODBC connection in R? In other words, where I enter the details such as
driver, url and port?
Following the referenced question, if you are on Windows, you create a user DSN or system DSN ODBC connection in the ODBC data source administrator (search for ODBC in the search box of the start button). Then you use this name on the second line of the following code. Where it says "mydsn".
library(RODBC)
myconn <-odbcConnect("mydsn", uid="Rob", pwd="aardvark")
crimedat <- sqlFetch(myconn, "Crime")
pundat <- sqlQuery(myconn, "select * from Punishment")
close(myconn)
If you haven't got the Amazon Redshift ODBC drivers installed, you will have to install them first. I found a link here.
I would like to use the dplyr package in R but to connect to a remote database that is SSL-encrypted. How do I set up a workaround here? I'm thinking of setting up a backend that uses the RODBC package. Is this possible?
Actually you can connect to a an SSL-encrypted connection with dplyr and it's easy.
You just need to pass the parameters for your connection within the dbname parameter, like this (this is a postgresql example):
db <- src_postgres(dbname="dbname=my_db sslcert=my_cert.crt sslkey=my_key.key sslmode=require", user="username", host="your.host.com")