通过 TNS 连接到 Oracle 的编码
Coding to connect to Oracle through TNS
在我工作的地方,通过Oracle UI,我只能使用TNS作为连接类型,因为他们无法打开端口让我进行连接.这是 Oracle 11g。
但是,现在我需要编写代码 来连接到 Oracle 并获取数据。我尝试了几种编码语言,其中 none 有效...
这是我尝试过的方法
尝试1:Spark Scala,SparkPython类似,我这里用的是Spark Notebook
val jdbcUsername = "[my user name]"
val jdbcPassword = "[my pswd]"
val jdbcHostname = "[Oracle hostname]"
val jdbcPort = [default port number]
val jdbcDatabase ="DATABASE"
val jdbcUrl = s"jdbc:oracle://${jdbcHostname}:${jdbcPort}/${jdbcDatabase}?user=${jdbcUsername}&password=${jdbcPassword}"
val connectionProperties = new java.util.Properties()
Class.forName("com.oracle.jdbc.Driver")
import java.sql.DriverManager
val connection = DriverManager.getConnection(jdbcUrl, jdbcUsername, jdbcPassword)
connection.isClosed()
此方法失败并显示
No suitable driver found
尝试 2:Oracle 教程
然后我检查了 Oracle Tutorial,它对我不起作用,因为它使用的是 基本连接类型而不是 TNS
我也检查了相关 Java 连接方法,对我不起作用
尝试 3:R
最后改成R,教程是这样的:R connect to Oracle
使用 RODBC
的第一种方法失败,显示
message [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
代码如下:
library(RODBC)
con <- odbcConnect("[Oracle Host name]", uid="[my user id]", pwd="[my pswd]", rows_at_time = 500)
对于第二种方法,我也无法使用RJDBC
。
第三种方法我试了所有mirror urls in my location,还是无法安装包ROracle
.....
我的问题是,是否可以使用 TNS 作为连接类型编写代码并连接到 Oracle 表?我很擅长 Python,Java 和 R,可以使用 Spark Scala
首先使用Class.forName("oracle.jdbc.driver.OracleDriver")加载驱动程序。 oracle jdbc 驱动程序 jar 文件应该在你的 $CLASSPATH
终于发现 R 适合我,而我的公司屏蔽了太多东西。而且 R 非常快。这是解决方案:
第一步:Download .jar for ojdbc,需要选择适合你的Oracle版本的,我是11g。此 .jar 文件的路径将是 classPath
第二步:如果没有安装Java jdk,否则无法加载rJava
包。 Download Java JDK here
library(rJava)
library(RJDBC)
drv <- JDBC("oracle.jdbc.OracleDriver", classPath="[your .jar file path]\ojdbc6.jar", " ")
con <- dbConnect(drv, "jdbc:oracle:thin:@[hostname]:[port number]:[database name]", "[user name]", "[user paswd]")
d <- dbGetQuery(con, "select * from [table name] WHERE ROWNUM <= 3")
d$[a column name]
dbDisconnect(con)
在我工作的地方,通过Oracle UI,我只能使用TNS作为连接类型,因为他们无法打开端口让我进行连接.这是 Oracle 11g。
但是,现在我需要编写代码 来连接到 Oracle 并获取数据。我尝试了几种编码语言,其中 none 有效...
这是我尝试过的方法
尝试1:Spark Scala,SparkPython类似,我这里用的是Spark Notebook
val jdbcUsername = "[my user name]"
val jdbcPassword = "[my pswd]"
val jdbcHostname = "[Oracle hostname]"
val jdbcPort = [default port number]
val jdbcDatabase ="DATABASE"
val jdbcUrl = s"jdbc:oracle://${jdbcHostname}:${jdbcPort}/${jdbcDatabase}?user=${jdbcUsername}&password=${jdbcPassword}"
val connectionProperties = new java.util.Properties()
Class.forName("com.oracle.jdbc.Driver")
import java.sql.DriverManager
val connection = DriverManager.getConnection(jdbcUrl, jdbcUsername, jdbcPassword)
connection.isClosed()
此方法失败并显示
No suitable driver found
尝试 2:Oracle 教程
然后我检查了 Oracle Tutorial,它对我不起作用,因为它使用的是 基本连接类型而不是 TNS 我也检查了相关 Java 连接方法,对我不起作用
尝试 3:R
最后改成R,教程是这样的:R connect to Oracle
使用 RODBC
的第一种方法失败,显示
message [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
代码如下:
library(RODBC)
con <- odbcConnect("[Oracle Host name]", uid="[my user id]", pwd="[my pswd]", rows_at_time = 500)
对于第二种方法,我也无法使用RJDBC
。
第三种方法我试了所有mirror urls in my location,还是无法安装包ROracle
.....
我的问题是,是否可以使用 TNS 作为连接类型编写代码并连接到 Oracle 表?我很擅长 Python,Java 和 R,可以使用 Spark Scala
首先使用Class.forName("oracle.jdbc.driver.OracleDriver")加载驱动程序。 oracle jdbc 驱动程序 jar 文件应该在你的 $CLASSPATH
终于发现 R 适合我,而我的公司屏蔽了太多东西。而且 R 非常快。这是解决方案:
第一步:Download .jar for ojdbc,需要选择适合你的Oracle版本的,我是11g。此 .jar 文件的路径将是 classPath
第二步:如果没有安装Java jdk,否则无法加载rJava
包。 Download Java JDK here
library(rJava)
library(RJDBC)
drv <- JDBC("oracle.jdbc.OracleDriver", classPath="[your .jar file path]\ojdbc6.jar", " ")
con <- dbConnect(drv, "jdbc:oracle:thin:@[hostname]:[port number]:[database name]", "[user name]", "[user paswd]")
d <- dbGetQuery(con, "select * from [table name] WHERE ROWNUM <= 3")
d$[a column name]
dbDisconnect(con)