Hi @nickodemus,
It looks to me like odbcinst -j is returning the correct output, and you are able to successfully run isql, so I think you're almost there. For some reason, your R code isn't actually making use of the DSN you're configuring, and therefore R is looking in the wrong place for the driver.
Can you share the isql command that's running successfully? That might be a hint here.
It looks like you've got a few different pieces configured here, but the simplest pattern is usually to:
- Define the DSN in
odbc.iniwith a name. In this case, it looks like you've defined a DSN namedbannerin theodbc.ini. - Use that DSN in your DBI code. Since your DSN is named
banner, your DBI code would look something like
con <- DBI::dbConnect(odbc::odbc(), "banner", <additional arguments not in the odbc.ini>), - The
odbc.iniwill either directly specify the driver path, or use a name defined inodbcinst.inito look up the driver path. It looks like yourodbc.iniis directly specifying the driver, so you shouldn't need theodbcinst.iniat all.
There's a little more of a step-by-step walkthrough here: https://db.rstudio.com/best-practices/drivers/
It looks to me like steps 1-6 above (thanks for the super-thorough walkthrough, btw) are about getting the Oracle driver to work properly, but now it's just about making sure the R install knows how to find it.
What happens if you try connecting using the DSN name?