问题标签 [jaydebeapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
935 浏览

python - 通过 Python 的 jaydebeapi 批量插入 Oracle 数据库

我想将 SQLite3 文件中的数据批量复制到 Oracle DB,并使用该jaydebeapi模块从 Python 脚本中以编程方式执行此操作。(我无法控制选择 Python + jaydebeapi 来执行此操作;它是由我正在合作的项目强加的。)

一种方法是将 SQLite3 表转储到临时 CSV 文件,并使用 Oracle 的LOAD DATA INFILE命令读取 CSV 文件。

我正在寻找一种方法来实现相同的最终结果,避免创建中间临时文件。

更具体地说,由于我可以将 SQLite3 表批量读取到内存中(使用简单的SELECT语句),我需要的是批量写入对应项,以便将表从内存转储到 Oracle 数据库中。


编辑:这是一个经常性的任务。要复制的最大表通常有 ~100K 行。

0 投票
1 回答
2114 浏览

java - 使用 JDBC 连接到 Oracle 服务名称时出错 (jaydebeapi)

我尝试从 Raspberry pi 在 python 中发出 Oracle 请求。问题是:

“Oracle 不支持 Raspberry Pi 使用的 ARM CPU 架构。您下载并解压缩了 Oracle Instant Client,但它实际上无法运行。没有 Oracle 客户端库,cx_oracle 将无法工作,通用 Python ODBC 也无法运行连接器。”

但我需要 python,所以安装了 JPype 和 JayDeBeApi,我在 jupyter notebopok 上写了这个:

/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/lib/arm/client/libjvm.so

但我有这个错误:

如何解决?

0 投票
1 回答
1237 浏览

java - 来自覆盆子的 jaydebeapi 的问题类路径

我尝试从 Raspberry pi 在 python 中发出 Oracle 请求。问题是:

“Oracle 不支持 Raspberry Pi 使用的 ARM CPU 架构。您下载并解压缩了 Oracle Instant Client,但它实际上无法运行。没有 Oracle 客户端库,cx_oracle 将无法工作,通用 Python ODBC 也无法运行连接器。”

信息:

ojdbc6.jar 的位置是:

我需要 python,所以安装了 JPype 和 JayDeBeApi,我在 jupyter notebopok 上写了这个:

但我有这个错误:

我认为问题出在类路径上,但我仍然是初学者。要键入什么命令来配置它?

先感谢您 !

0 投票
0 回答
504 浏览

python - 使用 Python 和 Jaydebeapi 查询时间戳数据时出错

我在尝试查询 Denodo 中具有时间戳类型的数据字段时收到错误消息。我正在使用 python 3.7.3 和 jaydebeapi。

参考我在下面收到的错误,'%Y-%m-%d %H:%M:%S' 确实是该字段的格式,并且 '62690377-06-10 23:2' 没有出现在原始数据。

  • 如果我将该字段转换为字符串,则查询可以正常工作。
  • 我组中的其他用户能够使用相同版本的 Python 和 jaydebeapi 以及下面的代码片段来毫无问题地查询时间戳数据。

我尝试制作一个虚拟数据集来说明这个问题。有时在这种情况下,如果数据集很小,我不会收到值错误但输出是乱码,如下面的两组数据比较时可以看到的。

在 Denodo 中格式化为文本时的查询结果:

在 Denodo 中格式化为时间戳时查询相同数据的结果:

0 投票
0 回答
672 浏览

python - 在 python 上的 JayDeBeAPI 中设置 JAVA_HOME

我想用 JDBC 和 python 连接到一个 Oracle 数据库。我有一台 Windows 7 机器。我已经安装了jaydebeapi软件包。

我的 Windows 7 机器安装了 32 位 JRE,安装 64 位版本不是一个选项。实际的 Windows 7 安装是 64 位。

我收到一个错误,说它找不到我的 JAVA_HOME。如何手动指定?

我得到的回溯:

0 投票
0 回答
259 浏览

python - 为什么我的查询没有从 VARCHAR 字段返回任何值?

我正在尝试使用带有 jaydebeapi 的 Python 从 Oracle 9i 数据库中查询一个表。它连接成功,光标和 fecth 似乎工作得很好,但是当我显示结果时,只有表格的数字字段可用。

我尝试了一些 Oracle 函数,如 TO_CHAR、SUBSTR 和 TRIM,以查看更改其值是否有助于显示它,但它们都不起作用。

预期结果是:

(0.0, 'NE99_TSR02X_TS9876_XY001', 'STARK TELECOM', '代理销售', '', 'Safra', 6.0, 1.0)

但我的代码显示:

(0.0, '', '', '', '', 'Safra', 6.0, 1.0)

不显示任何结果的字段是 VARCHAR2 类型。显示字符串“Safra”,但在我的查询中是硬编码的。

我尝试了其他表,但问题是相同的(仅返回数字字段)。

可能会发生什么?

0 投票
0 回答
2744 浏览

python - Python - 如何循环一个结果集

我正在使用 Python 和 JayDeBeApi 连接到 Oracle 类型的数据库。

在 SELECT 的语句中,我需要获得大约 10+ 千条记录。

我第一次使用“fetchAll()”方法完成了,但这会加载我的内存,我不希望这种情况发生。

我使用以下代码获取光标:

不是使用这种类型的代码:

我想做这样的事情:

这在python中可能吗?或者,是否存在比使用“fetchAll()”方法更好的方法?

谢谢

0 投票
1 回答
636 浏览

python - Python 使用 JAYDEBEAPI 连接 IBM DB2 错误:AttributeError: '_jpype.PyJPField' object has no attribute 'getStaticAttribute'

我正在使用以下代码(在 IBM 的官方页面上提供,[此处][1])来创建与 IBM DB2 的连接:

我收到以下错误:

AttributeError:“_jpype.PyJPField”对象没有属性“getStaticAttribute”

我该怎么做才能成功?

0 投票
1 回答
1930 浏览

python - jaydebeapi executemany() 方法不能使用一个参数

jaydebeapi executemany() 方法不适用于仅包含一个参数的 sql 查询,但同时两个参数可以正常工作。

例如给定的查询不执行:

这个工作正常

假设后面的表达式AND使用数据库中的现有列进行操作(使用一些类似的变通方法1 = ?没有成功)

使用第一种情况测试代码

第二种情况的测试代码

投掷错误:

当前数据库是 db2,jaydebeapi - 1.1.1,jpype - 0.6.3,python - 3.6。更改数据库没有帮助。任何帮助将不胜感激。

0 投票
1 回答
5737 浏览

java - 如何解决 jaydebeapi.connect 命令的“第一个参数不能被强制转换为字符串”?

在 Windows Server 2016 上,我们尝试使用 Jython 脚本通过 JDBC 连接,但我们的jaydebeapi.connect语句给出以下错误:

TypeError: getConnection(): 1st arg 不能被强制转换为 String

然而,当我们查看使用 jaydebeapi 的示例时,第一个参数一个字符串。

这是我们的 Python 代码:

这就是我们运行 Python 脚本的方式:

我们缺少什么?我们如何为我们的 jaydebeapi.connect 语句解决这个字符串强制错误?