java.lang.RuntimeExceptionPyRaisable:java.lang.RuntimeException:未找到类 com.teradata.jdbc.TeraDriver [英] java.lang.RuntimeExceptionPyRaisable: java.lang.RuntimeException: Class com.teradata.jdbc.TeraDriver not found

查看:78
本文介绍了java.lang.RuntimeExceptionPyRaisable:java.lang.RuntimeException:未找到类 com.teradata.jdbc.TeraDriver的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 Jaydebeapi 在 Mac 10.14.2 中连接 Teradata 数据库.我收到以下错误.早些时候,我在安装 Jaydebeapi 时遇到了问题.经过大量的试验和错误.我将 Python 3.7 降级为 Python 3.6.以下是代码和对应的错误输出

I am trying to connect with Teradata database in Mac 10.14.2 using Jaydebeapi. I am getting following error. Earlier, I was facing issue in installing Jaydebeapi. After lot of trials and errors. I downgraded Python 3.7 to Python 3.6. Following are the code and corresponding error output

代码

import sys
import os
import string
import jaydebeapi
from time import gmtime, strftime
from datetime import datetime, timedelta
case_detail_server ='*******'
amanita_server= '******'

database_case_detail='CASE_DETAILS_APP'
user_case_detail='****'
password_case_detail='!****'
jars= ['/Users/AppleUser/anaconda3/envs/py36/lib/tdgssconfig.jar','/Users/AppleUser/anaconda3/envs/py36/lib/terajdbc4.jar']
jclassname_case_detail='com.teradata.jdbc.TeraDriver'
case_detail_url='jdbc:teradata://xyz/DBS_PORT=1025,TMODE=ANSI,CHARSET=UTF8'

conn_case_detail=jaydebeapi.connect('com.teradata.jdbc.TeraDriver',case_detail_url,{'user': user_case_detail, 'password': password_case_detail},jars)
curs_case_detail = conn_case_detail.cursor()

curs_case_detail.execute("SELECT TOP 100 Case_Id, Case_Type_Desc FROM aca.fact_case_detail ")

错误

java.lang.RuntimeExceptionPyRaisable: java.lang.RuntimeException: Class com.teradata.jdbc.TeraDriver not found
---------------------------------------------------------------------------
java.lang.RuntimeExceptionPyRaisable      Traceback (most recent call last)
<ipython-input-59-70953f1fe337> in <module>
      6 case_detail_url='jdbc:teradata:xyz/DBS_PORT=1025,TMODE=ANSI,CHARSET=UTF8'
      7 
----> 8 conn_case_detail=jaydebeapi.connect('com.teradata.jdbc.TeraDriver',case_detail_url,{'user': user_case_detail, 'password': password_case_detail},jars)
      9 curs_case_detail = conn_case_detail.cursor()
     10 
/anaconda3/lib/python3.6/site-packages/jaydebeapi/__init__.py in connect(jclassname, url, driver_args, jars, libs)
    379     else:
    380         libs = []
--> 381     jconn = _jdbc_connect(jclassname, url, driver_args, jars, libs)
    382     return Connection(jconn, _converters)
    383 
/anaconda3/lib/python3.6/site-packages/jaydebeapi/__init__.py in _jdbc_connect_jpype(jclassname, url, driver_args, jars, libs)
    188             return jpype.JArray(jpype.JByte, 1)(data)
    189     # register driver for DriverManager
--> 190     jpype.JClass(jclassname)
    191     if isinstance(driver_args, dict):
    192         Properties = jpype.java.util.Properties
/anaconda3/lib/python3.6/site-packages/jpype/_jclass.py in JClass(name)
     71     jc = _jpype.findClass(name)
     72     if jc is None:
---> 73         raise _RUNTIMEEXCEPTION.PYEXC("Class %s not found" % name)
     74 
     75     return _getClassFor(jc)
java.lang.RuntimeExceptionPyRaisable: java.lang.RuntimeException: Class com.teradata.jdbc.TeraDriver not found

请帮忙.提前致谢!

推荐答案

我重新检查了所有数据库名称和 url.发现一切正常.然后,我从这里重新下载了 Teradata JDBC 驱动程序:

I rechecked all the database names and url. Found everything was correct. Then, I re-downloaded Teradata JDBC drivers from here:

https://downloads.teradata.com/download/connectivity/jdbc-driver

jars=['/CorrectPath/tdgssconfig.jar','/CorrectPAth/terajdbc4.jar']

解压并给出新路径.并发现它正在工作.

Unpacked and gave the new path. And found it's working.

奇怪!但是,我得到了解决方案.:)

Strange! But, I got the solution. :)

这篇关于java.lang.RuntimeExceptionPyRaisable:java.lang.RuntimeException:未找到类 com.teradata.jdbc.TeraDriver的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆