Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3-jaydebeapi-连接到Oracle数据库_Python_Jaydebeapi - Fatal编程技术网

Python3-jaydebeapi-连接到Oracle数据库

Python3-jaydebeapi-连接到Oracle数据库,python,jaydebeapi,Python,Jaydebeapi,我最近下载了jaydebeapi库,我正在努力连接到远程Oracle数据库。我正在做以下工作: import jaydebeapi as j j.connect('oracle.jdbc.driver.OracleDriver', ['jdbc:oracle:thin:@myhost:port:instance_name', "user", "pass"], "/path/to/ojdbc7.jar") 在这种情况下,我收到错误: FileNotFoundError: [WinError 2]

我最近下载了jaydebeapi库,我正在努力连接到远程Oracle数据库。我正在做以下工作:

import jaydebeapi as j
j.connect('oracle.jdbc.driver.OracleDriver', ['jdbc:oracle:thin:@myhost:port:instance_name', "user", "pass"], "/path/to/ojdbc7.jar")
在这种情况下,我收到错误:

FileNotFoundError: [WinError 2] The system cannot find the file specified
尽管jar文件位于指定的文件夹中

如果省略ojdbc7.jar的路径,我将收到:

import jaydebeapi as j
    j.connect('oracle.jdbc.driver.OracleDriver', ['jdbc:oracle:thin:@myhost:port:instance_name', "user", "pass"])

TypeError                                 Traceback (most recent call last)
<ipython-input-164-db519a221754> in <module>()
----> 1 j.connect('oracle.jdbc.driver.OracleDriver', 'jdbc:oracle:thin:@cdwprdmi-scan.int-app.stockex.com:1522:mdwprdmi1',)

L:\pyzo2015a\lib\site-packages\jaydebeapi\__init__.py in connect(jclassname, driver_args, jars, libs)
     61 
     62         gateway = java_gateway.JavaGateway.launch_gateway(
---> 63             port=25333, classpath=classpath, javaopts=javaopts, die_on_exit=True)
     64 
     65         java_gateway.java_import(gateway.jvm, 'java.sql.DriverManager')

L:\pyzo2015a\lib\site-packages\py4j\java_gateway.py in launch_gateway(cls, port, jarpath, classpath, javaopts, die_on_exit, redirect_stdout, redirect_stderr, daemonize_redirect, java_path, create_new_process_group)
   1977             daemonize_redirect=daemonize_redirect, java_path=java_path,
   1978             create_new_process_group=create_new_process_group)
-> 1979         gateway = JavaGateway(gateway_parameters=GatewayParameters(port=_port))
   1980         return gateway
   1981 

L:\pyzo2015a\lib\site-packages\py4j\java_gateway.py in launch_gateway(port, jarpath, classpath, javaopts, die_on_exit, redirect_stdout, redirect_stderr, daemonize_redirect, java_path, create_new_process_group)
    282     # Launch the server in a subprocess.
    283     classpath = os.pathsep.join((jarpath, classpath))
--> 284     command = [java_path, "-classpath", classpath] + javaopts +     285               ["py4j.GatewayServer"]
    286     if die_on_exit:

TypeError: sequence item 1: expected str instance, NoneType found
将jaydebeapi导入为j
j、 connect('oracle.jdbc.driver.OracleDriver',['jdbc:oracle:thin:@myhost:port:instance_name',“user”,“pass”])
TypeError回溯(最近一次调用上次)
在()
---->1 j.connect('oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:@cdwprdmi scan.int app.stockex.com:1522:mdwprdmi1',)
L:\pyzo2015a\lib\site packages\jaydebeapi\\uuuu init\uuuuuu.py in connect(jclassname、driver\u args、jars、libs)
61
62网关=java_网关.JavaGateway.launch_网关(
--->63端口=25333,类路径=classpath,javaopts=javaopts,die_on_出口=True)
64
65 java_gateway.java_导入(gateway.jvm'java.sql.DriverManager')
L:\pyzo2015a\lib\site packages\py4j\java_gateway.py在启动_gateway中(cls、端口、jarpath、类路径、javaopts、退出时的die_、重定向_stdout、重定向_stderr、daemonize_重定向、java_路径、创建新的_进程组)
1977 daemonize\u重定向=daemonize\u重定向,java\u路径=java\u路径,
1978创建新流程组=创建新流程组)
->1979网关=JavaGateway(网关\参数=网关参数(端口=\端口))
1980返回网关
1981
L:\pyzo2015a\lib\site packages\py4j\java\u gateway.py在启动\u gateway(端口、jarpath、类路径、javaopts、退出时的die\u、重定向\u stdout、重定向\u stderr、daemonize\u重定向、java\u路径、创建新的\u进程\u组)
282#在子进程中启动服务器。
283 classpath=os.pathsep.join((jarpath,classpath))
-->284命令=[java_path,“-classpath”,classpath]+javaopts+285[“py4j.GatewayServer”]
286如果模具在模具出口上:
TypeError:序列项1:应为str实例,未找到非类型
我怎样才能解决这里的问题?
谢谢,

我不确定这个错误,但下面的格式在windows 64位操作系统中适用

conn = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver', ['jdbc:oracle:thin:@hostname:1521:orcl', "username", "password"],"C:\\Users\\user\\Documents\\Drivers\\ojdbc6.jar")

问题的原因是,
jaydebeapi
使用命令
java
来执行javajar。不幸的是,我使用的计算机只接受java的绝对路径,所以我需要在调用connect方法jaydebeapi时引用它。 谢谢