python cx oracle期望字符串,unicode或缓冲区对象

编程入门 行业动态 更新时间:2024-10-27 15:20:58
本文介绍了python cx oracle期望字符串,unicode或缓冲区对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我试图在python中运行以下代码段以连接到oracle,但始终遇到以下错误。我尝试了很多组合,但似乎不起作用。我了解错误,但不了解此处存在哪些不兼容之处。 有人遇到过这个问题吗?我如何解决它?

I am trying to run following code snippet in python to connect to oracle, but constantly running into following error. I have tried a lot of combinations but it doesn't seem to work. I understand the error, but don't understand what is incompatible here. Has anyone come across this issue? How do I fix it?

文件 /,第1行,位于文件 /workplace/applications/python2.7/lib/python2.7/site-packages/sqlalchemy/engine/base中。 py,行1613,在执行中

File "", line 1, in File "/workplace/applications/python2.7/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1613, in execute

connection = self.contextual_connect(close_with_result=True) File "/workplace/applications/python2.7/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1661, in contextual_connect self.pool.connect(), File "/workplace/applications/python2.7/lib/python2.7/site-packages/sqlalchemy/pool.py", line 326, in connect return _ConnectionFairy(self).checkout() File "/workplace/applications/python2.7/lib/python2.7/site-packages/sqlalchemy/pool.py", line 485, in __init__ rec = self._connection_record = pool._do_get() File "/workplace/applications/python2.7/lib/python2.7/site-packages/sqlalchemy/pool.py", line 770, in _do_get return self._create_connection() File "/workplace/applications/python2.7/lib/python2.7/site-packages/sqlalchemy/pool.py", line 279, in _create_connection return _ConnectionRecord(self) File "/workplace/applications/python2.7/lib/python2.7/site-packages/sqlalchemy/pool.py", line 372, in __init__ self.connection = self.__connect() File "/workplace/applications/python2.7/lib/python2.7/site-packages/sqlalchemy/pool.py", line 433, in __connect connection = self.__pool._creator() File "/workplace/applications/python2.7/lib/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 80, in connect return dialect.connect(*cargs, **cparams) File "/workplace/applications/python2.7/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 283, in connect return self.dbapi.connect(*cargs, **cparams) TypeError: expecting string, unicode or buffer object from sqlalchemy.ext.declarative import declarative_base; from sqlalchemy import create_engine; engine = create_engine(u'oracle+cx_oracle://localhost:1521/orcl', echo=True) result = engine.execute(u"select 1 from dual");

设置:

Setup:

Python 2.7 SqlAlchemy 0.9.7和0.8.7 Cx Oracle(最新版本) Oracle数据库10g版本10.2.0.2.0

Python 2.7 SqlAlchemy 0.9.7 and 0.8.7 Cx Oracle (latest version) Oracle Database 10g Release 10.2.0.2.0

推荐答案

如果遇到此问题,最有可能的原因是您没有传入基础dbapi调用所需的参数。

If you are running into this problem, most likely the cause is that you are not passing in arguments required by the underlying dbapi call.

在我的情况下,我将用户,密码和dsn的其他参数与现有参数一起添加到create_engine调用中,该参数传递给cx_oracle调用并且可以使用。

In my case I added additional arguments of user, password and dsn to the create_engine call along with existing ones, which got passed to cx_oracle call and it worked.

类似的东西应该起作用

create_engine(u'oracle+cx_oracle://localhost:1521/orcl', echo=True, user='<>', password='<>', dsn='<>')

更多推荐

python cx oracle期望字符串,unicode或缓冲区对象

本文发布于:2023-06-05 01:22:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/508964.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:缓冲区   字符串   对象   cx   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!