【发布时间】:2016-07-26 20:55:08
【问题描述】:
在我的工作场所,通过 Oracle UI,我只能使用 TNS 作为连接类型,因为他们无法为我打开端口来进行连接。它是 Oracle 11g。
但是,现在我需要编写代码来连接到 Oracle 并获取数据。我尝试了几种编码语言,但它们都不起作用......
这是我尝试过的
尝试1:Spark Scala,Spark Python 类似,我这里用的是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()
此方法失败并显示
找不到合适的驱动程序
尝试 2:Oracle 教程
然后我检查了Oracle Tutorial,它对我不起作用,因为它使用的是基本连接类型而不是 TNS 我还检查了相关的 Java 连接方法,对我不起作用
尝试 3:R
最后我换成了R,教程如下:R connect to Oracle
第一种使用RODBC的方法失败,显示
消息 [Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序
代码如下:
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 p>
【问题讨论】:
-
为什么你的第一个加载
com.mysql.jdbc.Driver用于 Oracle 连接?以及您无法打开端口是什么意思 - TNS 通过网络连接到基本连接将使用的同一端口。