问题标签 [cx-oracle]

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 投票
4 回答
17518 浏览

python - 在 Python 中设置数据库连接超时

我正在创建一个需要访问数据库的 RESTful API。我正在使用 Restish、Oracle 和 SQLAlchemy。但是,我将尝试尽可能笼统地提出我的问题,而不考虑 Restish 或其他 Web API。

我希望能够为执行查询的连接设置超时。这是为了确保放弃长时间运行的查询,并丢弃(或回收)连接。这个查询超时可以是一个全局值,这意味着,我不需要在每次查询或连接创建时更改它。

给定以下代码:

如何修改上面的代码来设置查询超时?此超时是否也适用于连接创建?

这类似于 java.sql.Statement 的 setQueryTimeout(int seconds) 方法在 Java 中所做的。

谢谢

0 投票
1 回答
6371 浏览

python - cx_Oracle 和输出变量

我正在尝试在 Oracle 10 数据库中再次执行此操作:

但我得到

是否可以以这种方式在 cx_Oracle 中定义 PL/SQL 块?

0 投票
3 回答
56297 浏览

python - 为什么在进行 UPDATE 时需要显式提交?

这是我的代码:

如果我删除conn.commit(),则表不会更新。但是对于选择语句,我不需要那个conn.commit(). 我很好奇为什么?

0 投票
2 回答
2506 浏览

python - 为什么 cx_oracle execute() 现在不喜欢我的字符串了?

我前段时间下载了 cx_oracle 并编写了一个脚本来将数据转换为 XML。我不得不重新安装我的操作系统并获取最新版本的 cx_Oracle (5.0.3),突然间我的代码被破坏了。

第一件事是 cx_Oracle.connect 想要 unicode 而不是字符串作为用户名和密码,这很容易修复。但是现在它在 cursor.execute 上一直失败并告诉我我的字符串不是字符串,即使 type() 告诉我它是一个字符串。

这是我多年前最初使用的测试脚本,在我的旧版本上运行良好,但现在不适用于 cx_Oracle。

当我运行时,我得到:

Traceback(最近一次调用最后一次):文件“C:\NetBeansProjects\Python\src\db_temp.py”,第 48 行,在 cursor.execute(sql) 类型错误:期待 None 或字符串

有谁知道我可能做错了什么?

0 投票
3 回答
36842 浏览

python - 使用 cx_Oracle 时打印列名的更好方法

找到了一个使用 cx_Oracle 的例子,这个例子显示了Cursor.description.

我想看的是Cursor.description[0](name)的列表,所以我改了代码:

我认为会有更好的方法来打印列名。请给我找 Python 初学者的替代品。:-)

0 投票
2 回答
482 浏览

python - cx_Oracle.OracleCursor 的类型验证

这可能是一个非常基本的问题。我想验证一个变量是 cx_Oracle.OracleCursor 的类型,所以我尝试了几次但都失败了:

如何验证 的类型cursor

另外一个问题是什么异常/错误适用于无效类型错误?

谢谢你的帮助!

0 投票
0 回答
1482 浏览

python - cx_Oracle 中的 Unicode sql 查询

我有以下内容:

当我这样做时,我收到以下错误:

如果我将查询设为非 unicode(没有 u),它会通过但它什么也不返回

编辑:回复第一条评论:

NLS_LANGUAGE 是保加利亚语,

NLS_CHARACTERSET 是 CL8MSWIN1251

语言是 Python...

是的,有一条记录 cty_name = 'София'

连接只是:

0 投票
2 回答
3666 浏览

python - 尝试导入 python 的 cx_Oracle 问题

我正在尝试在 linux RHEL x86_64 中的 Apache WS 中运行 python。

在安装和配置 Python2.5 和 Apache 之后,我将 Oracle Instant Client(基本和 sdk)安装在一个 .rpm 文件中,没有任何问题。

我设置了环境变量

然后通过 .rpm 文件安装 cx_Oracle 也没有任何问题。

当我尝试在 python 中导入 cx_Oracle 时,我收到了消息

我用谷歌搜索没有成功的答案。任何提示?

0 投票
1 回答
3521 浏览

python - 将 cx_Oracle 部署到各种版本的 Oracle 客户端

我有一些使用 cx_Oracle 连接到 Oracle 数据库的小型 python 应用程序。我通过使用 py2exe 编译这些应用程序来部署它们,这在许多情况下都可以正常工作。

问题是,对于需要安装它的许多人来说,没有标准的 Oracle 客户端版本(例如 9i 和 10g),试图让每个人都在一个 Oracle 客户端版本上标准化会非常令人沮丧。我目前正在使用 9.2 客户端和 cx_Oracle 4.4.1 for 9i,所以当我 py2exe 生成的 exe 包含 cx_Oracle 4.4.1 库并且不适用于 10g 客户端。

我不使用任何 Oracle 版本的任何特定功能,因此我真的没有理由关心正在使用的客户端版本,除了 cx_Oracle 兼容性问题。

理想的解决方案是以某种方式编译一个完全独立于机器上安装的 Oracle 客户端的版本。

如果这不可能,我愿意为每个主要的 Oracle 版本(my_app_9i.exe、my_app_10g.exe 等)编译单独的 exe,但我什至想不出一个简单的方法来做到这一点,因为安装新的 cx_Oracle 会覆盖我的旧版本,每当我进行更改时,我都必须不断地来回交换库以编译其他版本。

欢迎任何建议或其他选择。

0 投票
2 回答
1248 浏览

python - 使用 cx_Oracle 将长字符串数组(>4000 字节)传递给 Oracle (11gR2) 存储过程

我们需要使用 cx_Oracle 批量加载许多长字符串(>4000 字节,但 <10,000 字节)。表中的数据类型是 CLOB。我们将需要加载超过 1 亿个这些字符串。一件一件地做这件事会很糟糕。以批量方式进行,即使用 cursor.arrayvar() 将是理想的。但是,CLOB 不支持数组。BLOB、LOB、LONG_STRING LONG_RAW 也不行。任何帮助将不胜感激。