2
lolizeppelin 2017-09-21 19:05:30 +08:00 via Android 1
cx Oracle 找大小比较大的版本
缩水版不支持中文 |
3
godwow OP 我是用 pip install cx_Oracle 命令直接安装的,这个也会是缩水版,那我应该去哪下载?
|
4
godwow OP @lolizeppelin 我是用 pip install cx_Oracle 命令直接安装的,这个也会是缩水版,那我应该去哪下载?
|
5
heqingpan 2017-09-21 19:52:52 +08:00
以前做的一个项目有用 python 测试 oracle 数据库,找到了这段,你可以试试。
import os os.environ["NLS_LANG"]=db.execute("select userenv('language') from dual").fetchone()[0].encode("utf8") |
6
heqingpan 2017-09-21 19:54:26 +08:00 1
主要就是在创建连接之后设置对应的 os.environ["NLS_LANG"],之后再使用就没有乱码的问题了。
|
7
godwow OP @heqingpan 谢谢您的回复!
我在 cx_Oracle.connect 时候就报错了,源码如下: import os os.environ["NLS_LANG"]="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" import cx_Oracle db = cx_Oracle.connect("test/[email protected]:2521/orcl", encoding="utf-8") “ SIMPLIFIED CHINESE_CHINA.ZHS16GBK ”是用您给的查询语句从数据中查询出来的,还是报错。 |
8
heqingpan 2017-09-21 20:14:33 +08:00
连接格式不对,应该是:db = cx_Oracle.connect("oracle://test:[email protected]:2521/orcl")
|
9
heqingpan 2017-09-21 20:16:39 +08:00
额,我看错了,忽略上一段,你是直接用 cx_Oracle,我之前是用 sqlalchemy
import sqlalchemy db=sqlalchemy.create_engine("oracle://test:[email protected]:2521/orcl") |
10
dawncold 2017-09-21 20:39:32 +08:00
我们项目是这样连接的,你试试
```python def _get_conn(self): os.environ['NLS_LANG'] = 'AMERICAN_CHINA.UTF8' conn = None connection_string = '{}/{}@{}'.format(self.user, self.password, cx_Oracle.makedsn(self.host, self.port, self.database)) try: conn = cx_Oracle.connect(connection_string) conn.outputtypehandler = OracleAdapter.output_type_handler conn.autocommit = True if self.schema: conn.current_schema = str(self.schema) # TODO: current_schema requires str, complains against unicode, may be fixed in new release except: LOGGER.critical('Cannot connect to database: %(parameters)s', {'parameters': self}, exc_info=1) try: raise finally: if conn is not None: try: conn.close() except Exception: LOGGER.exception('Cannot close database connection') else: return conn ``` |
11
dawncold 2017-09-21 20:40:26 +08:00 1
原来回复不支持 markdown,你可以到这里看: https://github.com/honovation/veil/blob/master/src/veil/backend/database/oracle/adapter.py#L31
|
14
lolizeppelin 2017-09-22 01:06:41 +08:00 via Android
|
15
lscomeon 2017-09-22 08:44:24 +08:00
3 喽
|